Fix IO_OUTPUT teardown issue.
bug 8891075
Change-Id: I6ec8d9a7db6def3db4111923d366f00f329cdacf
diff --git a/driver/rsdAllocation.cpp b/driver/rsdAllocation.cpp
index ef7d024..2f9aa6d 100644
--- a/driver/rsdAllocation.cpp
+++ b/driver/rsdAllocation.cpp
@@ -476,8 +476,9 @@
#endif
if (alloc->mHal.drvState.lod[0].mallocPtr) {
- // don't free user-allocated ptrs
- if (!(drv->useUserProvidedPtr)) {
+ // don't free user-allocated ptrs or IO_OUTPUT buffers
+ if (!(drv->useUserProvidedPtr) &&
+ !(alloc->mHal.state.usageFlags & RS_ALLOCATION_USAGE_IO_OUTPUT)) {
free(alloc->mHal.drvState.lod[0].mallocPtr);
}
alloc->mHal.drvState.lod[0].mallocPtr = NULL;