diff options
-rw-r--r-- | gralloc_drm.c | 11 |
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); |