summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gralloc_drm.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gralloc_drm.c b/gralloc_drm.c
index 23815bb..40342cb 100644
--- a/gralloc_drm.c
+++ b/gralloc_drm.c
@@ -235,7 +235,15 @@ static struct gralloc_drm_bo_t *validate_handle(buffer_handle_t _handle,
*/
int gralloc_drm_handle_register(buffer_handle_t handle, struct gralloc_drm_t *drm)
{
- return (validate_handle(handle, drm)) ? 0 : -EINVAL;
+ struct gralloc_drm_bo_t *bo;
+
+ bo = validate_handle(handle, drm);
+ if (!bo)
+ return -EINVAL;
+
+ bo->refcount++;
+
+ return 0;
}
/*
@@ -249,6 +257,7 @@ int gralloc_drm_handle_unregister(buffer_handle_t handle)
if (!bo)
return -EINVAL;
+ gralloc_drm_bo_decref(bo);
if (bo->imported)
gralloc_drm_bo_decref(bo);