
On Sun, Mar 30, 2008 at 12:59 AM, Robert Ramey <ramey@rrsd.com> wrote:
Felipe Magno de Almeida wrote:
[snip]
Hi Robert, I didn't make an example yet. I'm using msvc-7.1 SP1. I was able to narrow down the issue for when multiple registrations are done for the same type. Is it supported? The multiple registration comes from the same DLL.
Hmmm - I don't this should ever occur. That is I would expect one module to invoke no more than one "registration" record as its a singleton.
For each translation file which includes the serialization type and the archive type shows one extended_type_info in tkmap for that serialization type. The serialization type is surely on one DLL only, because they're only defined there. No other project has access to those headers (not in usage-requirements for other projects).
Multiple registration records could occur from having code for the same type in multiple DLLS or in a DLL along with the main module.
I believe the extended_type_info object is inserted for each translation file which includes the archive and serialization type. But it is only called key_register once. That's why there are extended_type_info with m_key == 0 in tkmap.
As each module is unloaded, registrations added the module should be deleted. Perhaps there is something out of whack here
I will try to provide a boost.build-v2 buildable example with the problem when I can in the near time.
Robert Ramey
So I would
Thanks, -- Felipe Magno de Almeida