From 05f5be96db912d630f163c8b2e2f4dc64994f437 Mon Sep 17 00:00:00 2001 From: Pablo Escobar Date: Sat, 7 Nov 2020 16:16:28 +0100 Subject: [PATCH] EmscriptenApplication: fix handling of magic target constants --- src/Magnum/Platform/EmscriptenApplication.cpp | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Magnum/Platform/EmscriptenApplication.cpp b/src/Magnum/Platform/EmscriptenApplication.cpp index d7f4b4f18..b26d1d5cc 100644 --- a/src/Magnum/Platform/EmscriptenApplication.cpp +++ b/src/Magnum/Platform/EmscriptenApplication.cpp @@ -524,7 +524,7 @@ void EmscriptenApplication::setupCallbacks(bool resizable) { 1.38.27 depending on -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 but we don't want to force this flag on the users so the behavior handles both. */ - char* keyboardListeningElement = reinterpret_cast(EM_ASM_INT({ + int keyboardListeningElement = EM_ASM_INT({ var element = Module['keyboardListeningElement'] || document; if(element === document) return 1; @@ -533,21 +533,21 @@ void EmscriptenApplication::setupCallbacks(bool resizable) { return allocate(intArrayFromString(element.id), 'i8', ALLOC_NORMAL); return 0; - })); + }); #pragma GCC diagnostic pop - std::string keyboardListeningElementString; - const char* keyboardListeningTarget = keyboardListeningElement; - if(_deprecatedTargetBehavior && keyboardListeningElement == reinterpret_cast(1)) { + std::string keyboardListeningTargetString; + const char* keyboardListeningTarget = reinterpret_cast(keyboardListeningElement); + if(_deprecatedTargetBehavior && keyboardListeningElement == 1) { keyboardListeningTarget = "#document"; - } else if(_deprecatedTargetBehavior && keyboardListeningElement == reinterpret_cast(2)) { + } else if(_deprecatedTargetBehavior && keyboardListeningElement == 2) { keyboardListeningTarget = "#window"; - } else if(keyboardListeningElement) { + } else if(keyboardListeningElement > 2) { if(!_deprecatedTargetBehavior) - keyboardListeningElementString = "#"; - keyboardListeningElementString += keyboardListeningElement; - std::free(keyboardListeningElement); - keyboardListeningTarget = keyboardListeningElementString.data(); + keyboardListeningTargetString = "#"; + keyboardListeningTargetString += keyboardListeningTarget; + std::free(reinterpret_cast(keyboardListeningElement)); + keyboardListeningTarget = keyboardListeningTargetString.data(); } /* Happens only if keyboardListeningElement was set, but did not have an