[odb-users] Segmentation fault when loading an unpersisted object
through lazy_shared_ptr::load()
Stefano Sartor
sartor at oats.inaf.it
Tue May 21 11:55:35 EDT 2013
Dear odb-users,
I'm developing a library which wraps ODB and offers to the end users a
simplified API.
I use vectors of both lazy_shared_ptrs and lazy_weak_ptr for storing
associations.
The setters and getters in the attached code should provide an
homogeneous access on the associations containers.
Unfortunately, on transient objects, only the weak_objects() getter
works because the lazy_weak_ptr::load() correctly detects that the
weak_pointer is already initialized and returns the shared_ptr from the
lock() method.
The lazy_shared_ptr::load() instead of returning just the internal
shared_ptr (on transient objects), always tries to load the object,
causing a segmentation fault.
I couldn't find any other way to get a shared_ptr from a lazy_shared_ptr.
Note that I generate odb-files with --default-pointer std::tr1::shared_ptr.
Some environment information:
obd 2.2.1
libodb 2.2
libodb-mysql 2.2
libodb-boost 2.2
g++ 4.7.2
running on ubuntu 12.10 x86_64
best regards,
Stefano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: example.tar.gz
Type: application/x-gzip
Size: 10240 bytes
Desc: not available
Url : http://codesynthesis.com/pipermail/odb-users/attachments/20130521/aae6dc7f/example.tar.bin
More information about the odb-users
mailing list