Improve renderscript context teardown. Track object in the system and then force their cleanup by releasing all user references once destroy context is called. Java layer will no longer send destroy notifications for objects garbage collected once a context is destroyed.
diff --git a/libs/rs/rsSampler.cpp b/libs/rs/rsSampler.cpp
index 3f56faa..99091a9 100644
--- a/libs/rs/rsSampler.cpp
+++ b/libs/rs/rsSampler.cpp
@@ -25,17 +25,18 @@
using namespace android::renderscript;
-Sampler::Sampler()
+Sampler::Sampler(Context *rsc) : ObjectBase(rsc)
{
// Should not get called.
rsAssert(0);
}
-Sampler::Sampler(RsSamplerValue magFilter,
+Sampler::Sampler(Context *rsc,
+ RsSamplerValue magFilter,
RsSamplerValue minFilter,
RsSamplerValue wrapS,
RsSamplerValue wrapT,
- RsSamplerValue wrapR)
+ RsSamplerValue wrapR) : ObjectBase(rsc)
{
mMagFilter = magFilter;
mMinFilter = minFilter;
@@ -138,7 +139,8 @@
SamplerState * ss = &rsc->mStateSampler;
- Sampler * s = new Sampler(ss->mMagFilter,
+ Sampler * s = new Sampler(rsc,
+ ss->mMagFilter,
ss->mMinFilter,
ss->mWrapS,
ss->mWrapT,