[odb-users] Segfault after adding relations
Boris Kolpackov
boris at codesynthesis.com
Thu Sep 29 04:54:17 EDT 2011
Hi Michal,
kontakt at msnoch.pl <kontakt at msnoch.pl> writes:
> transaction t(db->begin());
>
> result start(db->query<Stop>(query::name == p_from ||
> query::street == p_from));
>
> for(result::iterator i(start.begin()); i!= start.end(); ++i)
> {
>
> cout << "Found " << i->test().toStdString() << endl;
>
> }
>
> t.commit();
> cout << "Route Done (" << start.size() << ")" << endl;
The only problem that I see is the use of the result object after
the transaction has been committed (last line). Quoting the manual,
Section 4.4, second paragraph:
"The result instance is only usable within the transaction it was
created in. Trying to manipulate the result after the transaction
has terminated leads to undefined behavior."
If after fixing this you still get the segfault, I will also need
either the code fragment that persists the Stop/Line objects in the
database or your database dump (if it is big, please send it off-
list).
Boris
More information about the odb-users
mailing list