From 29af56dab3285fded22467b727faa0e97af7ada8 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 1 Sep 2010 17:45:07 +0200 Subject: Drop DOM association if node is copy-assigned to --- libxsd/xsd/cxx/tree/elements.hxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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 r (0); + dom_info_ = r; + } + } + return *this; } -- cgit v1.1