From 8533d2de846e60fc9d980a7135cb6a258393fa07 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 22 Jan 2010 15:53:15 +0200 Subject: Don't use std::auto_ptr::reset for greater portability --- libxsd/xsd/cxx/tree/containers.hxx | 3 ++- libxsd/xsd/cxx/tree/elements.hxx | 13 ++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/libxsd/xsd/cxx/tree/containers.hxx b/libxsd/xsd/cxx/tree/containers.hxx index 8ea04d2..ba76eae 100644 --- a/libxsd/xsd/cxx/tree/containers.hxx +++ b/libxsd/xsd/cxx/tree/containers.hxx @@ -1338,7 +1338,8 @@ namespace xsd { ptr& p (*position.base ()); p->_container (0); - r.reset (static_cast (p.release ())); + std::auto_ptr tmp (static_cast (p.release ())); + r = tmp; if (erase) return iterator (v_.erase (position.base ())); diff --git a/libxsd/xsd/cxx/tree/elements.hxx b/libxsd/xsd/cxx/tree/elements.hxx index 598a756..7489872 100644 --- a/libxsd/xsd/cxx/tree/elements.hxx +++ b/libxsd/xsd/cxx/tree/elements.hxx @@ -440,7 +440,8 @@ namespace xsd if (m.get () != 0) { m->insert (map_->begin (), map_->end ()); - map_.reset (); + std::auto_ptr tmp (0); + map_ = tmp; } else m = map_; @@ -465,7 +466,10 @@ namespace xsd // Part of our subtree. // if (m.get () == 0) - m.reset (new map); + { + std::auto_ptr tmp (new map); + m = tmp; + } m->insert (*i); sr->map_->erase (i++); @@ -631,7 +635,10 @@ namespace xsd assert (container_ == 0); if (map_.get () == 0) - map_.reset (new map); + { + std::auto_ptr tmp (new map); + map_ = tmp; + } if (!map_->insert ( std::pair (&id, t)).second) -- cgit v1.1