Remove OOB object destruction.
Change-Id: Icaa06aca4a701ec663c124d3141d9dbb633d7dc1
diff --git a/RenderScript.h b/RenderScript.h
index 6636fef..3406287 100644
--- a/RenderScript.h
+++ b/RenderScript.h
@@ -63,7 +63,6 @@
RsContext rsContextCreate(RsDevice, uint32_t version);
RsContext rsContextCreateGL(RsDevice, uint32_t version, bool useDepth);
void rsContextDestroy(RsContext);
-void rsObjDestroyOOB(RsContext, void *);
uint32_t rsContextGetMessage(RsContext, void *data, size_t *receiveLen, size_t bufferLen, bool wait);
void rsContextInitToClient(RsContext);
diff --git a/rsContext.cpp b/rsContext.cpp
index 2a94651..1a7c5ad 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -340,9 +340,6 @@
rsc->timerPrint();
rsc->timerReset();
}
- if (rsc->mObjDestroy.mNeedToEmpty) {
- rsc->objDestroyOOBRun();
- }
if (rsc->mThreadPriority > 0 && targetTime) {
int32_t t = (targetTime - (int32_t)(rsc->mTimeMSLastScript + rsc->mTimeMSLastSwap)) * 1000;
if (t > 0) {
@@ -367,9 +364,6 @@
}
ObjectBase::zeroAllUserRef(rsc);
- rsc->mObjDestroy.mNeedToEmpty = true;
- rsc->objDestroyOOBRun();
-
if (rsc->mIsGraphicsContext) {
pthread_mutex_lock(&gInitMutex);
rsc->deinitEGL();
@@ -488,7 +482,6 @@
mWndSurface = NULL;
- objDestroyOOBInit();
timerInit();
timerSet(RS_TIMER_INTERNAL);
@@ -534,8 +527,6 @@
mIO.shutdown();
int status = pthread_join(mThreadId, &res);
- mObjDestroy.mNeedToEmpty = true;
- objDestroyOOBRun();
// Global structure cleanup.
pthread_mutex_lock(&gInitMutex);
@@ -548,8 +539,6 @@
mDev = NULL;
}
pthread_mutex_unlock(&gInitMutex);
-
- objDestroyOOBDestroy();
}
void Context::setSurface(uint32_t w, uint32_t h, ANativeWindow *sur)
@@ -721,49 +710,6 @@
}
}
-bool Context::objDestroyOOBInit()
-{
- if (!mObjDestroy.mMutex.init()) {
- LOGE("Context::ObjDestroyOOBInit mutex init failure");
- return false;
- }
- return true;
-}
-
-void Context::objDestroyOOBRun()
-{
- if (mObjDestroy.mNeedToEmpty) {
- if (!mObjDestroy.mMutex.lock()) {
- LOGE("Context::ObjDestroyOOBRun: error locking for OOBRun.");
- return;
- }
-
- for (size_t ct = 0; ct < mObjDestroy.mDestroyList.size(); ct++) {
- mObjDestroy.mDestroyList[ct]->decUserRef();
- }
- mObjDestroy.mDestroyList.clear();
- mObjDestroy.mNeedToEmpty = false;
- mObjDestroy.mMutex.unlock();
- }
-}
-
-void Context::objDestroyOOBDestroy()
-{
- rsAssert(!mObjDestroy.mNeedToEmpty);
-}
-
-void Context::objDestroyAdd(ObjectBase *obj)
-{
- if (!mObjDestroy.mMutex.lock()) {
- LOGE("Context::ObjDestroyOOBRun: error locking for OOBRun.");
- return;
- }
-
- mObjDestroy.mNeedToEmpty = true;
- mObjDestroy.mDestroyList.add(obj);
- mObjDestroy.mMutex.unlock();
-}
-
uint32_t Context::getMessageToClient(void *data, size_t *receiveLen, size_t bufferLen, bool wait)
{
//LOGE("getMessageToClient %i %i", bufferLen, wait);
@@ -1003,12 +949,6 @@
delete rsc;
}
-void rsObjDestroyOOB(RsContext vrsc, void *obj)
-{
- Context * rsc = static_cast<Context *>(vrsc);
- rsc->objDestroyAdd(static_cast<ObjectBase *>(obj));
-}
-
uint32_t rsContextGetMessage(RsContext vrsc, void *data, size_t *receiveLen, size_t bufferLen, bool wait)
{
Context * rsc = static_cast<Context *>(vrsc);
diff --git a/rsContext.h b/rsContext.h
index 2da3ab5..6d1a41d 100644
--- a/rsContext.h
+++ b/rsContext.h
@@ -137,7 +137,6 @@
ThreadIO mIO;
- void objDestroyAdd(ObjectBase *);
// Timers
enum Timers {
@@ -248,16 +247,6 @@
ObjectBaseRef<ProgramRaster> mRaster;
ObjectBaseRef<Font> mFont;
- struct ObjDestroyOOB {
- Mutex mMutex;
- Vector<ObjectBase *> mDestroyList;
- bool mNeedToEmpty;
- };
- ObjDestroyOOB mObjDestroy;
- bool objDestroyOOBInit();
- void objDestroyOOBRun();
- void objDestroyOOBDestroy();
-
void displayDebugStats();
private: