浏览代码

[cpp] Dispose renderer object in HasRendererObject::setRendererObject if dispose callback is set, and new value is not equal to old value. Closes #1549.

badlogic 5 年之前
父节点
当前提交
707cd66c09
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      spine-cpp/spine-cpp/include/spine/HasRendererObject.h

+ 3 - 0
spine-cpp/spine-cpp/include/spine/HasRendererObject.h

@@ -45,6 +45,9 @@ public:
 
 
 	void* getRendererObject() { return _rendererObject; }
 	void* getRendererObject() { return _rendererObject; }
 	void setRendererObject(void* rendererObject, DisposeRendererObject dispose = NULL) {
 	void setRendererObject(void* rendererObject, DisposeRendererObject dispose = NULL) {
+        if (_dispose && _rendererObject && _rendererObject != rendererObject)
+            _dispose(_rendererObject);
+        
 		_rendererObject = rendererObject;
 		_rendererObject = rendererObject;
 		_dispose = dispose;
 		_dispose = dispose;
 	}
 	}