$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: [boost] [1.37.0][serialization] Assertion failed at libs/serialization/src/extended_type_info.cpp:92
From: Hartmut Kaiser (hartmut.kaiser_at_[hidden])
Date: 2008-10-21 09:04:43
Anything I can do about this?
What does this assertion mean?
My setup: Linux 64Bit, gcc 4.2.4, serialization is used for polymorphic
objects loaded from different shared libraries, shared libraries are loaded
with dlopen(RTLD_GLOBAL|RTLD_LAZY).
Assertion (extended_type_info.cpp:92) occurs during program termination
(after main returned), during dlclose().
If anything else isn't possible, would it be appropriate to change the
related code (before the release!) from:
assert(start != end);
// remove entry in map which corresponds to this type
do{
if(this == *start)
x.erase(start++);
else
++start;
}while(start != end);
To:
assert(start != end);
// remove entry in map which corresponds to this type
while(start != end) {
if(this == *start)
x.erase(start++);
else
++start;
}
Which wouldn't remove the problem, but at least avoids hanging the program
if assertions are off...
Regards Hartmut