summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsAdapter.cpp
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2009-09-25 14:51:22 -0700
committerJason Sams <rjsams@android.com>2009-09-25 14:51:22 -0700
commita9e7a05b84470257637c97d65f6562aa832c66ef (patch)
tree04a3175485ae7492c3387003c244953b6880c514 /libs/rs/rsAdapter.cpp
parenta0cad2f5d19d95cfe496ebb82f3227dd4ed7c169 (diff)
downloadframeworks_base-a9e7a05b84470257637c97d65f6562aa832c66ef.zip
frameworks_base-a9e7a05b84470257637c97d65f6562aa832c66ef.tar.gz
frameworks_base-a9e7a05b84470257637c97d65f6562aa832c66ef.tar.bz2
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.
Diffstat (limited to 'libs/rs/rsAdapter.cpp')
-rw-r--r--libs/rs/rsAdapter.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/libs/rs/rsAdapter.cpp b/libs/rs/rsAdapter.cpp
index d20e910..9a3bbb1 100644
--- a/libs/rs/rsAdapter.cpp
+++ b/libs/rs/rsAdapter.cpp
@@ -21,12 +21,12 @@ using namespace android;
using namespace android::renderscript;
-Adapter1D::Adapter1D()
+Adapter1D::Adapter1D(Context *rsc) : ObjectBase(rsc)
{
reset();
}
-Adapter1D::Adapter1D(Allocation *a)
+Adapter1D::Adapter1D(Context *rsc, Allocation *a) : ObjectBase(rsc)
{
reset();
setAllocation(a);
@@ -71,7 +71,7 @@ namespace renderscript {
RsAdapter1D rsi_Adapter1DCreate(Context *rsc)
{
- Adapter1D *a = new Adapter1D();
+ Adapter1D *a = new Adapter1D(rsc);
a->incUserRef();
return a;
}
@@ -125,12 +125,12 @@ void rsi_Adapter1DData(Context *rsc, RsAdapter1D va, const void *data)
//////////////////////////
-Adapter2D::Adapter2D()
+Adapter2D::Adapter2D(Context *rsc) : ObjectBase(rsc)
{
reset();
}
-Adapter2D::Adapter2D(Allocation *a)
+Adapter2D::Adapter2D(Context *rsc, Allocation *a) : ObjectBase(rsc)
{
reset();
setAllocation(a);
@@ -184,7 +184,7 @@ namespace renderscript {
RsAdapter2D rsi_Adapter2DCreate(Context *rsc)
{
- Adapter2D *a = new Adapter2D();
+ Adapter2D *a = new Adapter2D(rsc);
a->incUserRef();
return a;
}