diff options
Diffstat (limited to 'libs/rs/rsAllocation.cpp')
-rw-r--r-- | libs/rs/rsAllocation.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libs/rs/rsAllocation.cpp b/libs/rs/rsAllocation.cpp index b59ade8d9fe9..a366d4985a48 100644 --- a/libs/rs/rsAllocation.cpp +++ b/libs/rs/rsAllocation.cpp @@ -252,6 +252,7 @@ Allocation *Allocation::createFromStream(Context *rsc, IStream *stream) { Allocation *alloc = Allocation::createAllocation(rsc, type, RS_ALLOCATION_USAGE_SCRIPT); alloc->setName(name.string(), name.size()); + type->decUserRef(); uint32_t count = dataSize / type->getElementSizeBytes(); @@ -307,12 +308,12 @@ void Allocation::resize1D(Context *rsc, uint32_t dimX) { return; } - Type *t = mHal.state.type->cloneAndResize1D(rsc, dimX); + ObjectBaseRef<Type> t = mHal.state.type->cloneAndResize1D(rsc, dimX); if (dimX < oldDimX) { decRefs(getPtr(), oldDimX - dimX, dimX); } - rsc->mHal.funcs.allocation.resize(rsc, this, t, mHal.state.hasReferences); - mHal.state.type.set(t); + rsc->mHal.funcs.allocation.resize(rsc, this, t.get(), mHal.state.hasReferences); + mHal.state.type.set(t.get()); updateCache(); } |