summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsContext.cpp
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-11-03 16:56:31 -0500
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-11-03 16:56:31 -0500
commit83665194abceeb7681cb7ac49a4b71aa6e96b1b1 (patch)
treefaae45c0dbbf457142b6286a3022d96565b4c1bd /libs/rs/rsContext.cpp
parentc6e88afb3eda9da97f65b2a2f32e6a12c18301ba (diff)
parent9d5e03db9929271f56ac4a0078d9474d7011efcd (diff)
downloadframeworks_base-83665194abceeb7681cb7ac49a4b71aa6e96b1b1.zip
frameworks_base-83665194abceeb7681cb7ac49a4b71aa6e96b1b1.tar.gz
frameworks_base-83665194abceeb7681cb7ac49a4b71aa6e96b1b1.tar.bz2
Merge change I9d5e03db into eclair
* changes: 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;
}