Hey John, On Fri, Mar 16, 2018 at 10:48 PM, John Stultz <john.stultz@xxxxxxxxxx> wrote: > In trying to integrate the new gralloc_handle.h with the > drm_hwcomposer, I started seeing the following compilation > errors: > > In file included from external/drm_hwcomposer/platformdrmgeneric.cpp:28: > external/libdrm/android/gralloc_handle.h:108:9: error: cannot initialize return object of type 'native_handle_t *' (aka 'native_handle *') with an lvalue of type 'struct gralloc_handle_t *' > return handle; > ^~~~~~ > 1 error generated. > > This seems to be due to the gralloc_handle_create() definition > claiming to return a native_handle_t * type, rather then a > gralloc_handle_t *, which is what the code actually returns. > > This function isn't actually used in the current drm_hwcomposer, > so I'm not totally sure that this fix is correct (rather then > returning the gralloc_handle_t's embadedded native_handle_t ptr). This changed in 009634e49309 ("android: fix gralloc_handle_create() problems") to make the return value from gralloc_handle_create opaque to its user. Since the only one that would use gralloc_handle_create is the gralloc implementation itself (and libdrm isn't one) and using getters/setters was rejected (IIRC), I would think there is no reason to obscure the return type. Since buffer_handle_t is native_handle_t* is gralloc_handle_t* it's also correct. The alternative to changing the declaration here is returning nhandle instead of handle. Adding Rob Herring who authored 009634e49309. Thanks, Stefan _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel