Improved object lifecycle tracking and fix leaks.
diff --git a/rsContext.cpp b/rsContext.cpp
index 653d427..70add92 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -269,11 +269,16 @@
}
LOGV("RS Thread exiting");
+ rsc->mRaster.clear();
+ rsc->mFragment.clear();
+ rsc->mVertex.clear();
+ rsc->mFragmentStore.clear();
+ rsc->mRootScript.clear();
+ rsc->mStateRaster.deinit(rsc);
+ rsc->mStateVertex.deinit(rsc);
+ rsc->mStateFragment.deinit(rsc);
+ rsc->mStateFragmentStore.deinit(rsc);
ObjectBase::zeroAllUserRef(rsc);
- rsc->mRaster.set(NULL);
- rsc->mFragment.set(NULL);
- rsc->mVertex.set(NULL);
- rsc->mFragmentStore.set(NULL);
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT);