From 47873c041b7c7c308379dfba65672b115f9bce63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=9F=E6=88=98?= <40414978+PatriceJiang@users.noreply.github.com> Date: Wed, 3 Jun 2020 19:27:02 +0800 Subject: [PATCH 1/2] add release hook (#1690) --- spine-cpp/spine-cpp/include/spine/Extension.h | 7 +++++++ spine-cpp/spine-cpp/src/spine/SpineObject.cpp | 1 + 2 files changed, 8 insertions(+) diff --git a/spine-cpp/spine-cpp/include/spine/Extension.h b/spine-cpp/spine-cpp/include/spine/Extension.h index a64b0a61a..754a9d506 100644 --- a/spine-cpp/spine-cpp/include/spine/Extension.h +++ b/spine-cpp/spine-cpp/include/spine/Extension.h @@ -61,6 +61,11 @@ public: getInstance()->_free((void *) ptr, file, line); } + template + static void beforeFree(T *ptr) { + getInstance()->_beforeFree((void *) ptr); + } + static char *readFile(const String &path, int *length) { return getInstance()->_readFile(path, length); } @@ -83,6 +88,8 @@ public: virtual char *_readFile(const String &path, int *length) = 0; + virtual void _beforeFree(void *ptr) {} + protected: SpineExtension(); diff --git a/spine-cpp/spine-cpp/src/spine/SpineObject.cpp b/spine-cpp/spine-cpp/src/spine/SpineObject.cpp index 34308f432..f432f1abf 100644 --- a/spine-cpp/spine-cpp/src/spine/SpineObject.cpp +++ b/spine-cpp/spine-cpp/src/spine/SpineObject.cpp @@ -63,4 +63,5 @@ void SpineObject::operator delete(void *p) { } SpineObject::~SpineObject() { + SpineExtension::beforeFree(this); } From c55b20d4facdd3315cc3fae24246e5e686f2a8ed Mon Sep 17 00:00:00 2001 From: badlogic Date: Wed, 3 Jun 2020 13:28:24 +0200 Subject: [PATCH 2/2] [cpp] Fix unused-as-error in new Extension::_beforeFree. --- spine-cpp/spine-cpp/include/spine/Extension.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-cpp/spine-cpp/include/spine/Extension.h b/spine-cpp/spine-cpp/include/spine/Extension.h index 754a9d506..c417ef80f 100644 --- a/spine-cpp/spine-cpp/include/spine/Extension.h +++ b/spine-cpp/spine-cpp/include/spine/Extension.h @@ -88,7 +88,7 @@ public: virtual char *_readFile(const String &path, int *length) = 0; - virtual void _beforeFree(void *ptr) {} + virtual void _beforeFree(void *ptr) { SP_UNUSED(ptr); } protected: SpineExtension();