diff options
| author | Jason Sams <rjsams@android.com> | 2009-11-03 11:25:42 -0800 |
|---|---|---|
| committer | Jason Sams <rjsams@android.com> | 2009-11-03 11:25:42 -0800 |
| commit | 9d5e03db9929271f56ac4a0078d9474d7011efcd (patch) | |
| tree | 8052ee61aa0c6b7a1fc1ebdfcee1ea8f32a3dd5b /libs/rs/rsContext.cpp | |
| parent | c4918c30147d72c44e9a2a9fe7b9cbe88948677a (diff) | |
| download | frameworks_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.cpp | 5 |
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; } |
