1515// -- jshint doesn't understand library syntax, so we need to specifically tell it about the symbols we define
1616/*global typeDependencies, flushPendingDeletes, getTypeName, getBasestPointer, throwBindingError, UnboundTypeError, embindRepr, registeredInstances, registeredTypes*/
1717/*global ensureOverloadTable, embind__requireFunction, awaitingDependencies, makeLegalFunctionName, embind_charCodes:true, registerType, createNamedFunction, RegisteredPointer, throwInternalError*/
18- /*global simpleReadValueFromPointer, floatReadValueFromPointer, integerReadValueFromPointer, enumReadValueFromPointer, replacePublicSymbol, craftInvokerFunction, tupleRegistrations*/
18+ /*global floatReadValueFromPointer, integerReadValueFromPointer, enumReadValueFromPointer, replacePublicSymbol, craftInvokerFunction, tupleRegistrations*/
1919/*global finalizationRegistry, attachFinalizer, detachFinalizer, releaseClassHandle, runDestructor*/
2020/*global ClassHandle, makeClassHandle, structRegistrations, whenDependentTypesAreResolved, BindingError, deletionQueue, delayFunction:true, upcastPointer*/
2121/*global exposePublicSymbol, heap32VectorToArray, newFunc, char_0, char_9*/
@@ -41,7 +41,7 @@ var LibraryEmbind = {
4141 // If register_type is used, emval will be registered multiple times for
4242 // different type id's, but only a single type object is needed on the JS side
4343 // for all of them. Store the type for reuse.
44- $EmValType__deps : [ '_emval_decref' , '$Emval' , '$simpleReadValueFromPointer ' , '$GenericWireTypeSize' ] ,
44+ $EmValType__deps : [ '_emval_decref' , '$Emval' , '$readPointer ' , '$GenericWireTypeSize' ] ,
4545 $EmValType : `{
4646 name: 'emscripten::val',
4747 'fromWireType': (handle) => {
@@ -51,7 +51,7 @@ var LibraryEmbind = {
5151 },
5252 'toWireType': (destructors, value) => Emval.toHandle(value),
5353 'argPackAdvance': GenericWireTypeSize,
54- 'readValueFromPointer': simpleReadValueFromPointer ,
54+ 'readValueFromPointer': readPointer ,
5555 destructorFunction: null, // This type does not need a destructor
5656
5757 // TODO: do we need a deleteObject here? write a test where
@@ -494,12 +494,6 @@ var LibraryEmbind = {
494494 } ) ;
495495 } ,
496496
497- $simpleReadValueFromPointer__docs : '/ ** @suppress { globalThis } * / ' ,
498- // For types whose wire types are 32-bit pointers.
499- $simpleReadValueFromPointer : function ( pointer ) {
500- return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , '0' , 'i32' ) } } } ) ;
501- } ,
502-
503497 $readPointer__docs : '/ ** @suppress { globalThis } * / ' ,
504498 $readPointer : function ( pointer ) {
505499 return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , '0' , '*' ) } } } ) ;
@@ -617,33 +611,30 @@ var LibraryEmbind = {
617611 ] ,
618612 _embind_register_std_wstring : ( rawType , charSize , name ) = > {
619613 name = readLatin1String ( name ) ;
620- var decodeString , encodeString, getHeap , lengthBytesUTF, shift ;
614+ var decodeString , encodeString, readCharAt , lengthBytesUTF ;
621615 if ( charSize = = = 2 ) {
622616 decodeString = UTF16ToString ;
623617 encodeString = stringToUTF16 ;
624618 lengthBytesUTF = lengthBytesUTF16 ;
625- getHeap = ( ) => HEAPU16 ;
626- shift = 1 ;
619+ readCharAt = ( pointer ) => { { { makeGetValue ( 'pointer' , 0 , 'u16' ) } } } ;
627620 } else if ( charSize === 4 ) {
628621 decodeString = UTF32ToString ;
629622 encodeString = stringToUTF32 ;
630623 lengthBytesUTF = lengthBytesUTF32 ;
631- getHeap = ( ) => HEAPU32 ;
632- shift = 2 ;
624+ readCharAt = ( pointer ) => { { { makeGetValue ( 'pointer' , 0 , 'u32' ) } } } ;
633625 }
634626 registerType ( rawType , {
635627 name,
636628 'fromWireType' : ( value ) => {
637629 // Code mostly taken from _embind_register_std_string fromWireType
638630 var length = { { { makeGetValue ( 'value' , 0 , '*' ) } } } ;
639- var HEAP = getHeap ( ) ;
640631 var str ;
641632
642633 var decodeStartPtr = value + { { { POINTER_SIZE } } } ;
643634 // Looping here to support possible embedded '0' bytes
644635 for ( var i = 0 ; i <= length ; ++ i ) {
645636 var currentBytePtr = value + { { { POINTER_SIZE } } } + i * charSize ;
646- if ( i == length || HEAP [ currentBytePtr >> shift ] == 0 ) {
637+ if ( i == length || readCharAt ( currentBytePtr ) == 0 ) {
647638 var maxReadBytes = currentBytePtr - decodeStartPtr ;
648639 var stringSegment = decodeString ( decodeStartPtr , maxReadBytes ) ;
649640 if ( str === undefined ) {
@@ -668,7 +659,7 @@ var LibraryEmbind = {
668659 // assumes POINTER_SIZE alignment
669660 var length = lengthBytesUTF ( value ) ;
670661 var ptr = _malloc ( { { { POINTER_SIZE } } } + length + charSize ) ;
671- { { { makeSetValue ( 'ptr' , '0' , 'length >> shift ' , SIZE_TYPE ) } } } ;
662+ { { { makeSetValue ( 'ptr' , '0' , 'length / charSize ' , SIZE_TYPE ) } } } ;
672663
673664 encodeString ( value , ptr + { { { POINTER_SIZE } } } , length + charSize ) ;
674665
@@ -678,7 +669,7 @@ var LibraryEmbind = {
678669 return ptr ;
679670 } ,
680671 'argPackAdvance' : GenericWireTypeSize ,
681- 'readValueFromPointer ': simpleReadValueFromPointer ,
672+ 'readValueFromPointer' : readPointer ,
682673 destructorFunction ( ptr ) {
683674 _free( ptr ) ;
684675 }
@@ -1012,7 +1003,7 @@ var LibraryEmbind = {
10121003
10131004 _embind_finalize_value_array__deps : [
10141005 '$tupleRegistrations' , '$runDestructors' ,
1015- '$simpleReadValueFromPointer ' , '$whenDependentTypesAreResolved' ] ,
1006+ '$readPointer ' , '$whenDependentTypesAreResolved' ] ,
10161007 _embind_finalize_value_array : ( rawTupleType ) = > {
10171008 var reg = tupleRegistrations [ rawTupleType ] ;
10181009 delete tupleRegistrations [ rawTupleType ] ;
@@ -1064,7 +1055,7 @@ var LibraryEmbind = {
10641055 return ptr ;
10651056 } ,
10661057 'argPackAdvance' : GenericWireTypeSize ,
1067- 'readValueFromPointer' : simpleReadValueFromPointer ,
1058+ 'readValueFromPointer' : readPointer ,
10681059 destructorFunction : rawDestructor ,
10691060 } ] ;
10701061 } ) ;
@@ -1115,7 +1106,7 @@ var LibraryEmbind = {
11151106
11161107 _embind_finalize_value_object__deps : [
11171108 '$structRegistrations' , '$runDestructors' ,
1118- '$simpleReadValueFromPointer ' , '$whenDependentTypesAreResolved' ] ,
1109+ '$readPointer ' , '$whenDependentTypesAreResolved' ] ,
11191110 _embind_finalize_value_object : ( structType ) = > {
11201111 var reg = structRegistrations [ structType ] ;
11211112 delete structRegistrations [ structType ] ;
@@ -1173,7 +1164,7 @@ var LibraryEmbind = {
11731164 return ptr ;
11741165 } ,
11751166 'argPackAdvance' : GenericWireTypeSize ,
1176- 'readValueFromPointer' : simpleReadValueFromPointer ,
1167+ 'readValueFromPointer' : readPointer ,
11771168 destructorFunction : rawDestructor ,
11781169 } ] ;
11791170 } ) ;
0 commit comments