I ran into a problem when is was trying to build STLPort-4.5.3 as dll (if somebody is interested i can send him my patches). A program build with this dll crashed in _free_r on termination. After testing a while i discovered that the dtors were run twice, the first time from dll_global_dtors, the second time from dll_list::detach which resulted in a duplicated free for the same pointer. Since i can not judge which function is obsolete (i guess dll_global_dtors is) i have attached a small patch that will make sure that the dtors run only once.
Regards Thomas 2002-04-16 Thomas Pfaff <[EMAIL PROTECTED]> * dll_init.h (per_process::dtors_run): New member. * dll_init.cc (per_module::run_dtors): Run dtors only once. (dll::init): Initialize dtors_run flag.
run_dtors.patch
Description: Binary data