summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsContext.cpp
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2009-11-03 11:25:42 -0800
committerJason Sams <rjsams@android.com>2009-11-03 11:25:42 -0800
commit9d5e03db9929271f56ac4a0078d9474d7011efcd (patch)
tree8052ee61aa0c6b7a1fc1ebdfcee1ea8f32a3dd5b /libs/rs/rsContext.cpp
parentc4918c30147d72c44e9a2a9fe7b9cbe88948677a (diff)
downloadframeworks_base-9d5e03db9929271f56ac4a0078d9474d7011efcd.zip
frameworks_base-9d5e03db9929271f56ac4a0078d9474d7011efcd.tar.gz
frameworks_base-9d5e03db9929271f56ac4a0078d9474d7011efcd.tar.bz2
Fix RS bugs. We were holding a pointer to the script text from the java vm. Move freeing of objects to before context teardown to allow allocations to clean up their data.
Diffstat (limited to 'libs/rs/rsContext.cpp')
-rw-r--r--libs/rs/rsContext.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index 961ec0b..2e6d7b0 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -342,6 +342,9 @@ void * Context::threadProc(void *vrsc)
rsc->mStateFragmentStore.deinit(rsc);
ObjectBase::zeroAllUserRef(rsc);
+ rsc->mObjDestroy.mNeedToEmpty = true;
+ rsc->objDestroyOOBRun();
+
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT);
eglSwapBuffers(rsc->mEGL.mDisplay, rsc->mEGL.mSurface);
@@ -350,8 +353,6 @@ void * Context::threadProc(void *vrsc)
rsc->deinitEGL();
pthread_mutex_unlock(&gInitMutex);
- rsc->mObjDestroy.mNeedToEmpty = true;
- rsc->objDestroyOOBRun();
LOGV("RS Thread exited");
return NULL;
}