Opened 12 years ago
Closed 12 years ago
#4373 closed Bugs (invalid)
object tracking not working when pointer is serialized before class member
Reported by: | anonymous | Owned by: | Robert Ramey |
---|---|---|---|
Milestone: | Boost 1.44.0 | Component: | serialization |
Version: | Boost 1.44.0 | Severity: | Problem |
Keywords: | Cc: |
Description
I'm not sure if this is a bug or a limitation of Boost.Serialization. I haven't found anything in the documentation saying that this limitation exists though. it's certainly unexpected if you don't think about serilization internals:
struct B{
Serializable
};
struct A{
B *bptr;
B b;
template<class Archive>
void serialize(Archive &ar,unsigned int){
ar & bptr; error
ar & b;
}
};
if bptr is pointing to b, the object can not be loaded correctly. I'm not sure what actually happens, I guess there is a duplicate created, but bptr isnt equal to &b after serialization, as it was before serialization.
b must be serialized before bptr for this to work.
testcase attached.
Attachments (1)
Change History (3)
by , 12 years ago
Attachment: | testcase.cpp added |
---|
comment:1 by , 12 years ago
comment:2 by , 12 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
my mistake. archive_exception is thrown on serialization.
test