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<FGAIAircraft,bool>(*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); } /**
This commit is contained in:
parent
3d3922cd46
commit
7d1ec00a2b
1 changed files with 2 additions and 1 deletions
|
@ -81,9 +81,10 @@ void FGAIAircraft::bind() {
|
||||||
props->tie("controls/gear/gear-down",
|
props->tie("controls/gear/gear-down",
|
||||||
SGRawValueMethods<FGAIAircraft,bool>(*this,
|
SGRawValueMethods<FGAIAircraft,bool>(*this,
|
||||||
&FGAIAircraft::_getGearDown));
|
&FGAIAircraft::_getGearDown));
|
||||||
|
#if 0
|
||||||
props->getNode("controls/lighting/landing-lights", true)
|
props->getNode("controls/lighting/landing-lights", true)
|
||||||
->alias("controls/gear/gear-down");
|
->alias("controls/gear/gear-down");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void FGAIAircraft::unbind() {
|
void FGAIAircraft::unbind() {
|
||||||
|
|
Loading…
Reference in a new issue