[Webkit-unassigned] [Bug 179511] New: [WPE] GLContextEGLWPE.cpp:44:96: error: invalid cast from type ‘GLNativeWindowType {aka long long unsigned int}’ to type ‘EGLNativeWindowType {aka unsigned int}

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Nov 9 16:34:57 PST 2017


https://bugs.webkit.org/show_bug.cgi?id=179511

            Bug ID: 179511
           Summary: [WPE] GLContextEGLWPE.cpp:44:96: error: invalid cast
                    from type ‘GLNativeWindowType {aka long long unsigned
                    int}’ to type ‘EGLNativeWindowType {aka unsigned int}
           Product: WebKit
           Version: Other
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit WPE
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: mcatanzaro at igalia.com
                CC: aperez at igalia.com, bugs-noreply at webkitgtk.org,
                    magomez at igalia.com

When building for 32-bit ARM:

./platform/graphics/egl/GLContextEGLWPE.cpp: In static member function ‘static void* WebCore::GLContextEGL::createWindowSurfaceWPE(EGLDisplay, EGLConfig, GLNativeWindowType)’:
./platform/graphics/egl/GLContextEGLWPE.cpp:44:96: error: invalid cast from type ‘GLNativeWindowType {aka long long unsigned int}’ to type ‘EGLNativeWindowType {aka unsigned int}’
     return eglCreateWindowSurface(display, config, reinterpret_cast<EGLNativeWindowType>(window), nullptr);

So, that cast is clearly illegal. GLNativeWindowType is larger than EGLNativeWindowType, so it's not safe to cast in that direction.

I notice that GLNativeWindowType is defined oddly in GLContext.h:

#if USE(EGL) && !PLATFORM(GTK) && !PLATFORM(WPE)
#include "eglplatform.h"
typedef EGLNativeWindowType GLNativeWindowType;
#else
typedef uint64_t GLNativeWindowType;
#endif

I'm genuinely uncertain where the declaration of EGLNativeWindowType is coming from, but I see this in ANGLE's eglplatform.h:

#elif defined(USE_OZONE) || defined(USE_WPE)

typedef intptr_t EGLNativeDisplayType;
typedef intptr_t EGLNativeWindowType;
typedef intptr_t EGLNativePixmapType;

And of course, intptr_t is a 32-bit type. I have no clue how this is supposed to work.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20171110/e11cf247/attachment.html>


More information about the webkit-unassigned mailing list