15
15
// -- jshint doesn't understand library syntax, so we need to specifically tell it about the symbols we define
16
16
/*global typeDependencies, flushPendingDeletes, getTypeName, getBasestPointer, throwBindingError, UnboundTypeError, embindRepr, registeredInstances, registeredTypes*/
17
17
/*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*/
19
19
/*global finalizationRegistry, attachFinalizer, detachFinalizer, releaseClassHandle, runDestructor*/
20
20
/*global ClassHandle, makeClassHandle, structRegistrations, whenDependentTypesAreResolved, BindingError, deletionQueue, delayFunction:true, upcastPointer*/
21
21
/*global exposePublicSymbol, heap32VectorToArray, newFunc, char_0, char_9*/
@@ -41,7 +41,7 @@ var LibraryEmbind = {
41
41
// If register_type is used, emval will be registered multiple times for
42
42
// different type id's, but only a single type object is needed on the JS side
43
43
// 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' ] ,
45
45
$EmValType : `{
46
46
name: 'emscripten::val',
47
47
'fromWireType': (handle) => {
@@ -51,7 +51,7 @@ var LibraryEmbind = {
51
51
},
52
52
'toWireType': (destructors, value) => Emval.toHandle(value),
53
53
'argPackAdvance': GenericWireTypeSize,
54
- 'readValueFromPointer': simpleReadValueFromPointer ,
54
+ 'readValueFromPointer': readPointer ,
55
55
destructorFunction: null, // This type does not need a destructor
56
56
57
57
// TODO: do we need a deleteObject here? write a test where
@@ -494,12 +494,6 @@ var LibraryEmbind = {
494
494
} ) ;
495
495
} ,
496
496
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
-
503
497
$readPointer__docs : '/ ** @suppress { globalThis } * / ' ,
504
498
$readPointer : function ( pointer ) {
505
499
return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , '0' , '*' ) } } } ) ;
@@ -617,33 +611,30 @@ var LibraryEmbind = {
617
611
] ,
618
612
_embind_register_std_wstring : ( rawType , charSize , name ) = > {
619
613
name = readLatin1String ( name ) ;
620
- var decodeString , encodeString, getHeap , lengthBytesUTF, shift ;
614
+ var decodeString , encodeString, readCharAt , lengthBytesUTF ;
621
615
if ( charSize = = = 2 ) {
622
616
decodeString = UTF16ToString ;
623
617
encodeString = stringToUTF16 ;
624
618
lengthBytesUTF = lengthBytesUTF16 ;
625
- getHeap = ( ) => HEAPU16 ;
626
- shift = 1 ;
619
+ readCharAt = ( pointer ) => { { { makeGetValue ( 'pointer' , 0 , 'u16' ) } } } ;
627
620
} else if ( charSize === 4 ) {
628
621
decodeString = UTF32ToString ;
629
622
encodeString = stringToUTF32 ;
630
623
lengthBytesUTF = lengthBytesUTF32 ;
631
- getHeap = ( ) => HEAPU32 ;
632
- shift = 2 ;
624
+ readCharAt = ( pointer ) => { { { makeGetValue ( 'pointer' , 0 , 'u32' ) } } } ;
633
625
}
634
626
registerType ( rawType , {
635
627
name,
636
628
'fromWireType' : ( value ) => {
637
629
// Code mostly taken from _embind_register_std_string fromWireType
638
630
var length = { { { makeGetValue ( 'value' , 0 , '*' ) } } } ;
639
- var HEAP = getHeap ( ) ;
640
631
var str ;
641
632
642
633
var decodeStartPtr = value + { { { POINTER_SIZE } } } ;
643
634
// Looping here to support possible embedded '0' bytes
644
635
for ( var i = 0 ; i <= length ; ++ i ) {
645
636
var currentBytePtr = value + { { { POINTER_SIZE } } } + i * charSize ;
646
- if ( i == length || HEAP [ currentBytePtr >> shift ] == 0 ) {
637
+ if ( i == length || readCharAt ( currentBytePtr ) == 0 ) {
647
638
var maxReadBytes = currentBytePtr - decodeStartPtr ;
648
639
var stringSegment = decodeString ( decodeStartPtr , maxReadBytes ) ;
649
640
if ( str === undefined ) {
@@ -668,7 +659,7 @@ var LibraryEmbind = {
668
659
// assumes POINTER_SIZE alignment
669
660
var length = lengthBytesUTF ( value ) ;
670
661
var ptr = _malloc ( { { { POINTER_SIZE } } } + length + charSize ) ;
671
- { { { makeSetValue ( 'ptr' , '0' , 'length >> shift ' , SIZE_TYPE ) } } } ;
662
+ { { { makeSetValue ( 'ptr' , '0' , 'length / charSize ' , SIZE_TYPE ) } } } ;
672
663
673
664
encodeString ( value , ptr + { { { POINTER_SIZE } } } , length + charSize ) ;
674
665
@@ -678,7 +669,7 @@ var LibraryEmbind = {
678
669
return ptr ;
679
670
} ,
680
671
'argPackAdvance' : GenericWireTypeSize ,
681
- 'readValueFromPointer ': simpleReadValueFromPointer ,
672
+ 'readValueFromPointer' : readPointer ,
682
673
destructorFunction ( ptr ) {
683
674
_free( ptr ) ;
684
675
}
@@ -1012,7 +1003,7 @@ var LibraryEmbind = {
1012
1003
1013
1004
_embind_finalize_value_array__deps : [
1014
1005
'$tupleRegistrations' , '$runDestructors' ,
1015
- '$simpleReadValueFromPointer ' , '$whenDependentTypesAreResolved' ] ,
1006
+ '$readPointer ' , '$whenDependentTypesAreResolved' ] ,
1016
1007
_embind_finalize_value_array : ( rawTupleType ) = > {
1017
1008
var reg = tupleRegistrations [ rawTupleType ] ;
1018
1009
delete tupleRegistrations [ rawTupleType ] ;
@@ -1064,7 +1055,7 @@ var LibraryEmbind = {
1064
1055
return ptr ;
1065
1056
} ,
1066
1057
'argPackAdvance' : GenericWireTypeSize ,
1067
- 'readValueFromPointer' : simpleReadValueFromPointer ,
1058
+ 'readValueFromPointer' : readPointer ,
1068
1059
destructorFunction : rawDestructor ,
1069
1060
} ] ;
1070
1061
} ) ;
@@ -1115,7 +1106,7 @@ var LibraryEmbind = {
1115
1106
1116
1107
_embind_finalize_value_object__deps : [
1117
1108
'$structRegistrations' , '$runDestructors' ,
1118
- '$simpleReadValueFromPointer ' , '$whenDependentTypesAreResolved' ] ,
1109
+ '$readPointer ' , '$whenDependentTypesAreResolved' ] ,
1119
1110
_embind_finalize_value_object : ( structType ) = > {
1120
1111
var reg = structRegistrations [ structType ] ;
1121
1112
delete structRegistrations [ structType ] ;
@@ -1173,7 +1164,7 @@ var LibraryEmbind = {
1173
1164
return ptr ;
1174
1165
} ,
1175
1166
'argPackAdvance' : GenericWireTypeSize ,
1176
- 'readValueFromPointer' : simpleReadValueFromPointer ,
1167
+ 'readValueFromPointer' : readPointer ,
1177
1168
destructorFunction : rawDestructor ,
1178
1169
} ] ;
1179
1170
} ) ;
0 commit comments