Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release-src > by-pkgid > b6e67e5dda0250ec34c0fe22ba9b0cb4 > files > 3

openscenegraph-3.2.1-3.mga5.src.rpm

From 49d560f4d9d0641c98df67264b7ace4733c6b9a9 Mon Sep 17 00:00:00 2001
From: Robert OSFIELD <robert.osfield@gmail.com>
Date: Fri, 8 Aug 2014 15:45:48 +0000
Subject: [PATCH] Applied fix to Node::remove*Callback(NodeCallback*) inspired
 by fix from Glen Waldron that was applied to svn/trunk.

git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/branches/OpenSceneGraph-3.2@14400 16af8721-9629-0410-8352-f15c8da7e697
---
 include/osg/Node | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/include/osg/Node b/include/osg/Node
index b5eb8d9..9e2d727 100644
--- a/include/osg/Node
+++ b/include/osg/Node
@@ -203,8 +203,9 @@ class OSG_EXPORT Node : public Object
             if (nc != NULL && _updateCallback.valid()) {
                 if (_updateCallback == nc)
                 {
-                    setUpdateCallback(nc->getNestedCallback());        // replace the callback by the nested one
+                    ref_ptr<NodeCallback> new_nested_callback = nc->getNestedCallback();
                     nc->setNestedCallback(0);
+                    setUpdateCallback(new_nested_callback.get());
                 }
                 else _updateCallback->removeNestedCallback(nc);
             }
@@ -237,8 +238,9 @@ class OSG_EXPORT Node : public Object
             if (nc != NULL && _eventCallback.valid()) {
                 if (_eventCallback == nc)
                 {
-                    setEventCallback(nc->getNestedCallback());        // replace the callback by the nested one
+                    ref_ptr<NodeCallback> new_nested_callback = nc->getNestedCallback();
                     nc->setNestedCallback(0);
+                    setEventCallback(new_nested_callback.get()); // replace the callback by the nested one
                 }
                 else _eventCallback->removeNestedCallback(nc);
             }
@@ -271,8 +273,9 @@ class OSG_EXPORT Node : public Object
             if (nc != NULL && _cullCallback.valid()) {
                 if (_cullCallback == nc)
                 {
-                    setCullCallback(nc->getNestedCallback());        // replace the callback by the nested one
+                    ref_ptr<NodeCallback> new_nested_callback = nc->getNestedCallback();
                     nc->setNestedCallback(0);
+                    setCullCallback(new_nested_callback.get()); // replace the callback by the nested one
                 }
                 else _cullCallback->removeNestedCallback(nc);
             }