diff options
-rw-r--r-- | rsElement.cpp | 7 | ||||
-rw-r--r-- | rsElement.h | 2 | ||||
-rw-r--r-- | rsType.cpp | 7 | ||||
-rw-r--r-- | rsType.h | 2 |
4 files changed, 18 insertions, 0 deletions
diff --git a/rsElement.cpp b/rsElement.cpp index 3509b12f..f7b064ab 100644 --- a/rsElement.cpp +++ b/rsElement.cpp @@ -34,6 +34,13 @@ Element::~Element() { clear(); } +void Element::operator delete(void* ptr) { + if (ptr) { + Element *e = (Element*) ptr; + e->getContext()->mHal.funcs.freeRuntimeMem(ptr); + } +} + void Element::preDestroy() const { for (uint32_t ct = 0; ct < mRSC->mStateElement.mElements.size(); ct++) { if (mRSC->mStateElement.mElements[ct] == this) { diff --git a/rsElement.h b/rsElement.h index 57cde180..5a3bc13c 100644 --- a/rsElement.h +++ b/rsElement.h @@ -57,6 +57,8 @@ public: }; Hal mHal; + void operator delete(void* ptr); + uint32_t getGLType() const; uint32_t getGLFormat() const; @@ -45,6 +45,13 @@ Type::~Type() { clear(); } +void Type::operator delete(void* ptr) { + if (ptr) { + Type *t = (Type*) ptr; + t->getContext()->mHal.funcs.freeRuntimeMem(ptr); + } +} + void Type::clear() { if (mHal.state.lodCount) { delete [] mHal.state.lodDimX; @@ -56,6 +56,8 @@ public: }; Hal mHal; + void operator delete(void* ptr); + Type * createTex2D(const Element *, size_t w, size_t h, bool mip); size_t getCellCount() const {return mCellCount;} |