From 7d1ec00a2b714badf5d9c488b765243fc9006498 Mon Sep 17 00:00:00 2001 From: ehofman Date: Thu, 21 Oct 2004 09:21:05 +0000 Subject: [PATCH] Frederic Bouvier: I think I found the problem in props.hxx. I have an exception when copying properties. An alias to a property that has no value trigger this exception. The code that generate that is in AIManager.cxx : void FGAIAircraft::bind() { FGAIBase::bind(); props->tie("controls/gear/gear-down", SGRawValueMethods(*this, &FGAIAircraft::_getGearDown)); props->getNode("controls/lighting/landing-lights", true) ->alias("controls/gear/gear-down"); } controls/gear/gear-down has no value ( _type == NONE ) and controls/lighting/landing-lights is copied somewhere. Erik: Frederic's fix was to change props.hxx but he has expressed his doubts. For now I've commented out the line that causes the problem so we have more time to look deeper into the problem. cvs -z4 -q diff -u props.hxx (in directory I:\FlightGear\cvs\SimGear\simgear\props\) Index: props.hxx =================================================================== RCS file: /var/cvs/SimGear-0.3/SimGear/simgear/props/props.hxx,v retrieving revision 1.4 diff -u -r1.4 props.hxx --- props.hxx 19 Sep 2004 09:08:12 -0000 1.4 +++ props.hxx 21 Oct 2004 07:10:54 -0000 @@ -622,7 +622,7 @@ /** * Test whether this node contains a primitive leaf value. */ - bool hasValue () const { return (_type != NONE); } + bool hasValue () const { return (_type != ALIAS && _type != NONE) || (_type == ALIAS && _value.alias->_type != NONE); } /** --- src/AIModel/AIAircraft.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/AIModel/AIAircraft.cxx b/src/AIModel/AIAircraft.cxx index 566b6068f..9b2b59719 100644 --- a/src/AIModel/AIAircraft.cxx +++ b/src/AIModel/AIAircraft.cxx @@ -81,9 +81,10 @@ void FGAIAircraft::bind() { props->tie("controls/gear/gear-down", SGRawValueMethods(*this, &FGAIAircraft::_getGearDown)); - +#if 0 props->getNode("controls/lighting/landing-lights", true) ->alias("controls/gear/gear-down"); +#endif } void FGAIAircraft::unbind() { -- 2.39.5