* Melchior FRANZ -- Thursday 23 March 2006 13:40: > * Melchior FRANZ -- Thursday 23 March 2006 12:42: > > There are apparently two reasons: > > (a) the concorde doesn't work with jsbsim 2.0 yet, and aborts > > (b) this crashes fgfs (but why?) > > One could assume that it's because FDM/JSBSim.[ch]xx uses a lot of > unguarded pointers to SGPropertyNode-s [...]
Fixed. And right that was the cause! Storage of a node pointer as SGPropertyNode* instead of SGPropertyNode_ptr -- not in the JSBSim code, but the panel code. It's just a question of time, though, until the same bug in JSBSim bites us in the ass in the same way. Please fix. (see attachment) m.
Index: JSBSim.hxx =================================================================== RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/FDM/JSBSim/JSBSim.hxx,v retrieving revision 1.16 diff -u -p -r1.16 JSBSim.hxx --- JSBSim.hxx 12 Jan 2006 15:04:22 -0000 1.16 +++ JSBSim.hxx 23 Mar 2006 15:16:52 -0000 @@ -226,40 +226,40 @@ private: double trim_elev; double trim_throttle; - SGPropertyNode *startup_trim; - SGPropertyNode *trimmed; - SGPropertyNode *pitch_trim; - SGPropertyNode *throttle_trim; - SGPropertyNode *aileron_trim; - SGPropertyNode *rudder_trim; - SGPropertyNode *stall_warning; - - /* SGPropertyNode *elevator_pos_deg; - SGPropertyNode *left_aileron_pos_deg; - SGPropertyNode *right_aileron_pos_deg; - SGPropertyNode *rudder_pos_deg; - SGPropertyNode *flap_pos_deg; */ - - - SGPropertyNode *elevator_pos_pct; - SGPropertyNode *left_aileron_pos_pct; - SGPropertyNode *right_aileron_pos_pct; - SGPropertyNode *rudder_pos_pct; - SGPropertyNode *flap_pos_pct; - SGPropertyNode *speedbrake_pos_pct; - SGPropertyNode *spoilers_pos_pct; - - SGPropertyNode *gear_pos_pct; - - SGPropertyNode *temperature; - SGPropertyNode *pressure; - SGPropertyNode *density; - SGPropertyNode *turbulence_gain; - SGPropertyNode *turbulence_rate; - - SGPropertyNode *wind_from_north; - SGPropertyNode *wind_from_east; - SGPropertyNode *wind_from_down; + SGPropertyNode_ptr startup_trim; + SGPropertyNode_ptr trimmed; + SGPropertyNode_ptr pitch_trim; + SGPropertyNode_ptr throttle_trim; + SGPropertyNode_ptr aileron_trim; + SGPropertyNode_ptr rudder_trim; + SGPropertyNode_ptr stall_warning; + + /* SGPropertyNode_ptr elevator_pos_deg; + SGPropertyNode_ptr left_aileron_pos_deg; + SGPropertyNode_ptr right_aileron_pos_deg; + SGPropertyNode_ptr rudder_pos_deg; + SGPropertyNode_ptr flap_pos_deg; */ + + + SGPropertyNode_ptr elevator_pos_pct; + SGPropertyNode_ptr left_aileron_pos_pct; + SGPropertyNode_ptr right_aileron_pos_pct; + SGPropertyNode_ptr rudder_pos_pct; + SGPropertyNode_ptr flap_pos_pct; + SGPropertyNode_ptr speedbrake_pos_pct; + SGPropertyNode_ptr spoilers_pos_pct; + + SGPropertyNode_ptr gear_pos_pct; + + SGPropertyNode_ptr temperature; + SGPropertyNode_ptr pressure; + SGPropertyNode_ptr density; + SGPropertyNode_ptr turbulence_gain; + SGPropertyNode_ptr turbulence_rate; + + SGPropertyNode_ptr wind_from_north; + SGPropertyNode_ptr wind_from_east; + SGPropertyNode_ptr wind_from_down; void init_gear(void); void update_gear(void);