summaryrefslogtreecommitdiff
path: root/libxsd/xsd/cxx/parser/substitution-map.txx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2009-12-02 12:26:05 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2009-12-02 12:26:05 +0200
commitee4eb695119bce96515b330f9fc83ddd67da5c62 (patch)
tree817bf37d4b0f0fb89e785004c41b4c6928228f79 /libxsd/xsd/cxx/parser/substitution-map.txx
parentc155e6925211747af9a13a5994c2f768c5048971 (diff)
Implement de-registering polymorphic type information
This is required for DLL/shared library unloading.
Diffstat (limited to 'libxsd/xsd/cxx/parser/substitution-map.txx')
-rw-r--r--libxsd/xsd/cxx/parser/substitution-map.txx8
1 files changed, 8 insertions, 0 deletions
diff --git a/libxsd/xsd/cxx/parser/substitution-map.txx b/libxsd/xsd/cxx/parser/substitution-map.txx
index c9d4cb1..63d88b9 100644
--- a/libxsd/xsd/cxx/parser/substitution-map.txx
+++ b/libxsd/xsd/cxx/parser/substitution-map.txx
@@ -67,10 +67,18 @@ namespace xsd
const C* root_ns,
const C* root_name,
const C* member_type)
+ : member_ns_ (member_ns), member_name_ (member_name)
{
substitution_map_instance<C> ().insert (
member_ns, member_name, root_ns, root_name, member_type);
}
+
+ template<typename C>
+ substitution_map_entry<C>::
+ ~substitution_map_entry ()
+ {
+ substitution_map_instance<C> ().erase (member_ns_, member_name_);
+ }
}
}
}