On Saturday 04 March 2006 11:50, AJ MacLeod wrote:
> It's very possible that the other segfaults I was seeing were related to or
> a consequence of the problem you've just produced a fix for - I'd like us
> to test that fix and see what we find, rather than possibly wasting
> anyone's time tracking down already-fixed bugs.  Also, I've mislaid the
> other segfaults I was keeping note of :-)
Ok, attached it here.

> I should mention that I think everyone who's tried has noticed the
> improvement in smoothness...
Ok, thanks. I am not entirely satisfied with that. But I believe that the 
remaining jerky movement will be *much* harder to fix ...

For the radar problems you will still need the prevous fix I sent to the list.

Greetings

      Mathias

-- 
Mathias Fröhlich, email: [EMAIL PROTECTED]
Index: simgear/props/props.cxx
===================================================================
RCS file: /var/cvs/SimGear-0.3/SimGear/simgear/props/props.cxx,v
retrieving revision 1.21
diff -u -r1.21 props.cxx
--- simgear/props/props.cxx	7 Feb 2006 20:50:35 -0000	1.21
+++ simgear/props/props.cxx	4 Mar 2006 10:14:00 -0000
@@ -250,7 +250,7 @@
  * Locate a child node by name and index.
  */
 static int
-find_child (const char * name, int index, vector<SGPropertyNode_ptr> nodes)
+find_child (const char * name, int index, const vector<SGPropertyNode_ptr>& nodes)
 {
   int nNodes = nodes.size();
   for (int i = 0; i < nNodes; i++) {
@@ -749,6 +749,11 @@
  */
 SGPropertyNode::~SGPropertyNode ()
 {
+  // zero out all parent pointers, else they might be dangling
+  for (unsigned i = 0; i < _children.size(); ++i)
+    _children[i]->_parent = 0;
+  for (unsigned i = 0; i < _removedChildren.size(); ++i)
+    _removedChildren[i]->_parent = 0;
   delete _path_cache;
   clearValue();
   delete _listeners;

Reply via email to