2
2
* @license
3
3
* Copyright 2014 The Emscripten Authors
4
4
* 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
5
7
*/
6
8
7
9
var LibraryHTML5 = {
@@ -314,7 +316,11 @@ var LibraryHTML5 = {
314
316
// values we accept here, EMSCRIPTEN_EVENT_TARGET_* (which map to 0, 1, 2).
315
317
// In other words, if cString > 2 then it's a pointer to a valid place in
316
318
// memory, and points to a C string.
319
+ #if MEMORY64
320
+ return cString > 2 ? UTF8ToString ( Number ( cString ) ) : cString ;
321
+ #else
317
322
return cString > 2 ? UTF8ToString ( cString ) : cString ;
323
+ #endif
318
324
} ,
319
325
320
326
$findEventTarget__deps : [ '$maybeCStringToJsString' , '$specialHTMLTargets' ] ,
@@ -519,10 +525,10 @@ var LibraryHTML5 = {
519
525
if ( targetThread ) {
520
526
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.
521
527
fillMouseEventData ( mouseEventData , e , target ) ;
522
- JSEvents . queueEventHandlerOnThread_iiii ( targetThread , callbackfunc , eventTypeId , mouseEventData , userData ) ;
528
+ JSEvents . queueEventHandlerOnThread_iipp ( targetThread , callbackfunc , eventTypeId , mouseEventData , userData ) ;
523
529
} else
524
530
#endif
525
- if ( { { { makeDynCall ( 'iiii ', 'callbackfunc ') } } } ( eventTypeId , JSEvents . mouseEvent , userData ) ) e . preventDefault ( ) ;
531
+ if ( { { { makeDynCall ( 'iipp ', 'callbackfunc ') } } } ( eventTypeId , JSEvents . mouseEvent , userData ) ) e . preventDefault ( ) ;
526
532
} ;
527
533
528
534
var eventHandler = {
@@ -639,7 +645,7 @@ var LibraryHTML5 = {
639
645
if ( targetThread ) JSEvents . queueEventHandlerOnThread_iiii ( targetThread , callbackfunc , eventTypeId , wheelEvent , userData ) ;
640
646
else
641
647
#endif
642
- if ( { { { makeDynCall ( 'iiii ' , 'callbackfunc' ) } } } ( eventTypeId , wheelEvent , userData ) ) e . preventDefault ( ) ;
648
+ if ( { { { makeDynCall ( 'iipp ' , 'callbackfunc' ) } } } ( eventTypeId , wheelEvent , userData ) ) e . preventDefault ( ) ;
643
649
} ;
644
650
#if MIN_IE_VERSION <= 8 || MIN_SAFARI_VERSION < 60100 // Browsers that do not support https://caniuse.com/#feat=mdn-api_wheelevent
645
651
// The 'mousewheel' event as implemented in Safari 6.0.5
@@ -651,7 +657,7 @@ var LibraryHTML5 = {
651
657
{ { { makeSetValue ( 'JSEvents.wheelEvent' , C_STRUCTS . EmscriptenWheelEvent . deltaY , 'wheelDeltaY' , 'double' ) } } } ;
652
658
{ { { makeSetValue ( 'JSEvents.wheelEvent' , C_STRUCTS . EmscriptenWheelEvent . deltaZ , '0 /* Not available */' , 'double' ) } } } ;
653
659
{ { { 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 ) ;
655
661
if ( shouldCancel ) {
656
662
e . preventDefault ( ) ;
657
663
}
0 commit comments