diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp index e37cdddf..8dcc2199 100644 --- a/libgralloc/alloc_controller.cpp +++ b/libgralloc/alloc_controller.cpp @@ -898,7 +898,7 @@ static unsigned int getUBwcMetaBufferSize(int width, int height, int bpp) meta_width = ALIGN(((width + block_width - 1) / block_width), 64); // Align meta buffer size to 4K - size = ((meta_width * meta_height), 4096); + size = ALIGN((meta_width * meta_height), 4096); return size; } @@ -929,7 +929,7 @@ static unsigned int getUBwcSize(int width, int height, int format, return size; } -int getRgbDataAddress(private_handle_t* hnd, void* rgb_data) +int getRgbDataAddress(private_handle_t* hnd, void** rgb_data) { int err = 0; @@ -940,7 +940,7 @@ int getRgbDataAddress(private_handle_t* hnd, void* rgb_data) // linear buffer if (!(hnd->flags & private_handle_t::PRIV_FLAGS_UBWC_ALIGNED)) { - rgb_data = (void*)hnd->base; + *rgb_data = (void*)hnd->base; return err; } @@ -960,6 +960,6 @@ int getRgbDataAddress(private_handle_t* hnd, void* rgb_data) break; } - rgb_data = (void*)(hnd->base + meta_size); + *rgb_data = (void*)(hnd->base + meta_size); return err; } diff --git a/libgralloc/gr.h b/libgralloc/gr.h index 98b4eeca..e27203af 100644 --- a/libgralloc/gr.h +++ b/libgralloc/gr.h @@ -71,7 +71,7 @@ int decideBufferHandlingMechanism(int format, const char *compositionUsed, int alloc_buffer(private_handle_t **pHnd, int w, int h, int format, int usage); void free_buffer(private_handle_t *hnd); int getYUVPlaneInfo(private_handle_t* pHnd, struct android_ycbcr* ycbcr); -int getRgbDataAddress(private_handle_t* pHnd, void* rgb_data); +int getRgbDataAddress(private_handle_t* pHnd, void** rgb_data); // To query if UBWC is enabled, based on format and usage flags bool isUBwcEnabled(int format, int usage); diff --git a/libgralloc/mapper.cpp b/libgralloc/mapper.cpp index 7d4e8ce0..30f606e5 100644 --- a/libgralloc/mapper.cpp +++ b/libgralloc/mapper.cpp @@ -445,7 +445,7 @@ int gralloc_perform(struct gralloc_module_t const* module, case GRALLOC_MODULE_PERFORM_GET_RGB_DATA_ADDRESS: { private_handle_t* hnd = va_arg(args, private_handle_t*); - void* rgb_data = va_arg(args, void*); + void** rgb_data = va_arg(args, void**); if (!private_handle_t::validate(hnd)) { res = getRgbDataAddress(hnd, rgb_data); }