diff options
-rw-r--r-- | libxsd/xsd/cxx/tree/elements.hxx | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libxsd/xsd/cxx/tree/elements.hxx b/libxsd/xsd/cxx/tree/elements.hxx index 805b32a..09e86b6 100644 --- a/libxsd/xsd/cxx/tree/elements.hxx +++ b/libxsd/xsd/cxx/tree/elements.hxx @@ -377,7 +377,17 @@ namespace xsd type& operator= (const type& x) { - while (&x == 0) /* unused */; + if (this != &x) + { + // Drop DOM association. + // + if (dom_info_.get ()) + { + std::auto_ptr<dom_info> r (0); + dom_info_ = r; + } + } + return *this; } |