diff --git a/src/plugins/tools/net_tracer/db_plugin/dbNetTracerPlugin.cc b/src/plugins/tools/net_tracer/db_plugin/dbNetTracerPlugin.cc index e9b442f7b..67cc68b9d 100644 --- a/src/plugins/tools/net_tracer/db_plugin/dbNetTracerPlugin.cc +++ b/src/plugins/tools/net_tracer/db_plugin/dbNetTracerPlugin.cc @@ -88,30 +88,27 @@ template struct FallbackXMLWriteAdaptor { FallbackXMLWriteAdaptor (void (db::NetTracerConnectivity::*member) (const Value &), void (db::NetTracerConnectivity::*clear) ()) - : mp_member (member), mp_clear (clear), mp_stack (0) + : mp_member (member), mp_clear (clear) { // .. nothing yet .. } void operator () (db::NetTracerTechnologyComponent &owner, tl::XMLReaderState &reader) const { - if (! mp_stack) { - mp_stack = const_cast (get_default (owner)); - if (! mp_stack) { - owner.push_back (db::NetTracerConnectivity ()); - mp_stack = (owner.end () - 1).operator-> (); - } - (mp_stack->*mp_clear) (); + db::NetTracerConnectivity *stack = const_cast (get_default (owner)); + if (! stack) { + owner.push_back (db::NetTracerConnectivity ()); + stack = (owner.end () - 1).operator-> (); } + (stack->*mp_clear) (); tl::XMLObjTag tag; - (mp_stack->*mp_member) (*reader.back (tag)); + (stack->*mp_member) (*reader.back (tag)); } private: void (db::NetTracerConnectivity::*mp_member) (const Value &); void (db::NetTracerConnectivity::*mp_clear) (); - mutable db::NetTracerConnectivity *mp_stack; }; template