]> git.mxchange.org Git - simgear.git/commitdiff
Don't cache results of getDisplayName
authortimoore <timoore>
Wed, 15 Jul 2009 23:08:10 +0000 (23:08 +0000)
committerTim Moore <timoore@redhat.com>
Thu, 16 Jul 2009 10:09:43 +0000 (12:09 +0200)
Return a std::string result instead of char *.

simgear/props/props.cxx
simgear/props/props.hxx

index 9db543b6a4650761ea652a87f5d7c7c6b7455af7..6d6c2edee4c02a599f9ca8eaeb06ff50bd8bc6ce 100644 (file)
@@ -994,16 +994,16 @@ SGPropertyNode::remove_linked_node (hash_table * node)
 }
 
 
-const char *
+string
 SGPropertyNode::getDisplayName (bool simplify) const
 {
-  _display_name = _name;
+  string display_name = _name;
   if (_index != 0 || !simplify) {
     stringstream sstr;
     sstr << '[' << _index << ']';
-    _display_name += sstr.str();
+    display_name += sstr.str();
   }
-  return _display_name.c_str();
+  return display_name;
 }
 
 
index 8e3647eeb71e45ace7328d5a9bacb35d4507f05a..9bef6844dbae050d0c13ccda29daa4e024ee4247 100644 (file)
@@ -795,11 +795,10 @@ public:
    */
   const char * getName () const { return _name.c_str(); }
 
-
   /**
    * Get the node's pretty display name, with subscript when needed.
    */
-  const char * getDisplayName (bool simplify = false) const;
+    std::string getDisplayName (bool simplify = false) const;
 
 
   /**
@@ -1642,7 +1641,6 @@ private:
 
   int _index;
   std::string _name;
-  mutable std::string _display_name;
   /// To avoid cyclic reference counting loops this shall not be a reference
   /// counted pointer
   SGPropertyNode * _parent;