22 * @license
33 * Copyright 2014 The Emscripten Authors
44 * SPDX-License-Identifier: MIT
5+ * SPDX-FileCopyrightText: Portions Copyright 2023 Siemens
6+ * Modified on February 2023 by Siemens and/or its affiliates to improve memory64 support
57 */
68
79var LibraryHTML5 = {
@@ -314,7 +316,11 @@ var LibraryHTML5 = {
314316 // values we accept here, EMSCRIPTEN_EVENT_TARGET_* (which map to 0, 1, 2).
315317 // In other words, if cString > 2 then it's a pointer to a valid place in
316318 // memory, and points to a C string.
319+ #if MEMORY64
320+ return cString > 2 ? UTF8ToString ( Number ( cString ) ) : cString ;
321+ #else
317322 return cString > 2 ? UTF8ToString ( cString ) : cString ;
323+ #endif
318324 } ,
319325
320326 $findEventTarget__deps : [ '$maybeCStringToJsString' , '$specialHTMLTargets' ] ,
@@ -519,10 +525,10 @@ var LibraryHTML5 = {
519525 if ( targetThread ) {
520526 var mouseEventData = _malloc ( { { { C_STRUCTS . EmscriptenMouseEvent . __size__ } } } ) ; // This allocated block is passed as satellite data to the proxied function call, so the call frees up the data block when done.
521527 fillMouseEventData ( mouseEventData , e , target ) ;
522- JSEvents . queueEventHandlerOnThread_iiii ( targetThread , callbackfunc , eventTypeId , mouseEventData , userData ) ;
528+ JSEvents . queueEventHandlerOnThread_iipp ( targetThread , callbackfunc , eventTypeId , mouseEventData , userData ) ;
523529 } else
524530#endif
525- if ( { { { makeDynCall ( 'iiii ', 'callbackfunc ') } } } ( eventTypeId , JSEvents . mouseEvent , userData ) ) e . preventDefault ( ) ;
531+ if ( { { { makeDynCall ( 'iipp ', 'callbackfunc ') } } } ( eventTypeId , JSEvents . mouseEvent , userData ) ) e . preventDefault ( ) ;
526532 } ;
527533
528534 var eventHandler = {
@@ -639,7 +645,7 @@ var LibraryHTML5 = {
639645 if ( targetThread ) JSEvents . queueEventHandlerOnThread_iiii ( targetThread , callbackfunc , eventTypeId , wheelEvent , userData ) ;
640646 else
641647#endif
642- if ( { { { makeDynCall ( 'iiii ' , 'callbackfunc' ) } } } ( eventTypeId , wheelEvent , userData ) ) e . preventDefault ( ) ;
648+ if ( { { { makeDynCall ( 'iipp ' , 'callbackfunc' ) } } } ( eventTypeId , wheelEvent , userData ) ) e . preventDefault ( ) ;
643649 } ;
644650#if MIN_IE_VERSION <= 8 || MIN_SAFARI_VERSION < 60100 // Browsers that do not support https://caniuse.com/#feat=mdn-api_wheelevent
645651 // The 'mousewheel' event as implemented in Safari 6.0.5
@@ -651,7 +657,7 @@ var LibraryHTML5 = {
651657 { { { makeSetValue ( 'JSEvents.wheelEvent' , C_STRUCTS . EmscriptenWheelEvent . deltaY , 'wheelDeltaY' , 'double' ) } } } ;
652658 { { { makeSetValue ( 'JSEvents.wheelEvent' , C_STRUCTS . EmscriptenWheelEvent . deltaZ , '0 /* Not available */' , 'double' ) } } } ;
653659 { { { makeSetValue ( 'JSEvents.wheelEvent' , C_STRUCTS . EmscriptenWheelEvent . deltaMode , '0 /* DOM_DELTA_PIXEL */' , 'i32' ) } } } ;
654- var shouldCancel = { { { makeDynCall ( 'iiii ' , 'callbackfunc' ) } } } ( eventTypeId , JSEvents . wheelEvent , userData ) ;
660+ var shouldCancel = { { { makeDynCall ( 'iipp ' , 'callbackfunc' ) } } } ( eventTypeId , JSEvents . wheelEvent , userData ) ;
655661 if ( shouldCancel ) {
656662 e . preventDefault ( ) ;
657663 }
0 commit comments