소스 검색

add release hook (#1690)

江战 5 년 전
부모
커밋
47873c041b
2개의 변경된 파일8개의 추가작업 그리고 0개의 파일을 삭제
  1. 7 0
      spine-cpp/spine-cpp/include/spine/Extension.h
  2. 1 0
      spine-cpp/spine-cpp/src/spine/SpineObject.cpp

+ 7 - 0
spine-cpp/spine-cpp/include/spine/Extension.h

@@ -61,6 +61,11 @@ public:
 		getInstance()->_free((void *) ptr, file, line);
 		getInstance()->_free((void *) ptr, file, line);
 	}
 	}
 
 
+	template<typename T>
+	static void beforeFree(T *ptr) {
+		getInstance()->_beforeFree((void *) ptr);
+	}
+	
 	static char *readFile(const String &path, int *length) {
 	static char *readFile(const String &path, int *length) {
 		return getInstance()->_readFile(path, length);
 		return getInstance()->_readFile(path, length);
 	}
 	}
@@ -83,6 +88,8 @@ public:
 
 
 	virtual char *_readFile(const String &path, int *length) = 0;
 	virtual char *_readFile(const String &path, int *length) = 0;
 
 
+	virtual void _beforeFree(void *ptr) {}
+
 protected:
 protected:
 	SpineExtension();
 	SpineExtension();
 
 

+ 1 - 0
spine-cpp/spine-cpp/src/spine/SpineObject.cpp

@@ -63,4 +63,5 @@ void SpineObject::operator delete(void *p) {
 }
 }
 
 
 SpineObject::~SpineObject() {
 SpineObject::~SpineObject() {
+	SpineExtension::beforeFree(this);
 }
 }