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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user