gbm_dri: Fix DRIimage lookup callback
authorBenjamin Franzke <benjaminfranzke@googlemail.com>
Wed, 7 Mar 2012 16:21:20 +0000 (17:21 +0100)
committerBenjamin Franzke <benjaminfranzke@googlemail.com>
Wed, 7 Mar 2012 17:17:56 +0000 (18:17 +0100)
That is by making the dri extension variables static in gbm_dri.c.

The image_lookup_extension is provided by egl_dri2 when using x11 or wayland
platforms, when using the drm platform, gbm_dri has a wrapper for it.
Both use the same variables name image_lookup_extension.

Since -fvisibility=hidden was (probably by mistake) removed when converting to
automake, the "image_lookup_extension" symbol from egl_dri2.c became exported
in libEGL.so, so "image_lookup_extension" from gbm_dri.c was ignored.
This resulted in calling incorrect callbacks.

We cant make the image_lookup_extension static in egl_dri2.c right now,
since its used across multiple files.

Bugzilla: https://bugs.freedesktop.org/attachment.cgi?id=58099
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
src/gbm/backends/dri/gbm_dri.c

index 34f07de4bba6ad4400a1405430fd4ad50df4378f..98f14cd53439b60d028bcf6177cfe86e8a02aa37 100644 (file)
@@ -54,11 +54,11 @@ dri_lookup_egl_image(__DRIscreen *screen, void *image, void *data)
    return dri->lookup_image(screen, image, dri->lookup_user_data);
 }
 
-const __DRIuseInvalidateExtension use_invalidate = {
+static const __DRIuseInvalidateExtension use_invalidate = {
    { __DRI_USE_INVALIDATE, 1 }
 };
 
-const __DRIimageLookupExtension image_lookup_extension = {
+static const __DRIimageLookupExtension image_lookup_extension = {
    { __DRI_IMAGE_LOOKUP, 1 },
    dri_lookup_egl_image
 };