]> git.mxchange.org Git - simgear.git/commitdiff
SGPropertyNode must increment / decrement the reference counter in an aliased
authorTim Moore <timoore@redhat.com>
Wed, 14 Jan 2009 11:10:23 +0000 (12:10 +0100)
committerTim Moore <timoore@redhat.com>
Wed, 14 Jan 2009 11:10:23 +0000 (12:10 +0100)
node.

From Csaba Halász.

simgear/props/props.cxx

index 48b1d2c9c716a9d9e4dbab1073c7cd089748e00c..f73e773e02577527387536758494aed5ea4b81bf 100644 (file)
@@ -477,6 +477,7 @@ SGPropertyNode::clearValue ()
   case NONE:
     break;
   case ALIAS:
+    put(_value.alias);
     _value.alias = 0;
     break;
   case BOOL:
@@ -661,6 +662,7 @@ SGPropertyNode::SGPropertyNode (const SGPropertyNode &node)
     break;
   case ALIAS:
     _value.alias = node._value.alias;
+    get(_value.alias);
     _tied = false;
     break;
   case BOOL:
@@ -776,6 +778,7 @@ SGPropertyNode::alias (SGPropertyNode * target)
   if (target == 0 || _type == ALIAS || _tied)
     return false;
   clearValue();
+  get(target);
   _value.alias = target;
   _type = ALIAS;
   return true;
@@ -800,8 +803,7 @@ SGPropertyNode::unalias ()
 {
   if (_type != ALIAS)
     return false;
-  _type = NONE;
-  _value.alias = 0;
+  clearValue();
   return true;
 }