@@ -34,6 +34,7 @@ var LibraryEmbind = {
34
34
$PureVirtualError__postset : "PureVirtualError = Module['PureVirtualError'] = extendError(Error, 'PureVirtualError');" ,
35
35
$PureVirtualError__deps : [ '$extendError' ] ,
36
36
$PureVirtualError : undefined ,
37
+ $GenericWireTypeSize : { { { 2 * POINTER_SIZE } } } ,
37
38
38
39
$init_embind__deps : [
39
40
'$getInheritedInstanceCount' , '$getLiveInheritedInstances' ,
@@ -274,7 +275,7 @@ var LibraryEmbind = {
274
275
} ) ;
275
276
} ,
276
277
277
- _embind_register_bool__deps : [ '$readLatin1String' , '$registerType' ] ,
278
+ _embind_register_bool__deps : [ '$readLatin1String' , '$registerType' , '$GenericWireTypeSize' ] ,
278
279
_embind_register_bool : ( rawType , name , trueValue , falseValue ) => {
279
280
name = readLatin1String ( name ) ;
280
281
registerType ( rawType , {
@@ -287,7 +288,7 @@ var LibraryEmbind = {
287
288
'toWireType' : function ( destructors , o ) {
288
289
return o ? trueValue : falseValue ;
289
290
} ,
290
- 'argPackAdvance' : 8 ,
291
+ 'argPackAdvance' : GenericWireTypeSize ,
291
292
'readValueFromPointer' : function ( pointer ) {
292
293
return this [ 'fromWireType' ] ( HEAPU8 [ pointer ] ) ;
293
294
} ,
@@ -300,18 +301,18 @@ var LibraryEmbind = {
300
301
// integers are quite common, so generate very specialized functions
301
302
switch ( width ) {
302
303
case 1 : return signed ?
303
- function readS8FromPointer ( pointer ) { return HEAP8 [ pointer ] ; } :
304
- function readU8FromPointer ( pointer ) { return HEAPU8 [ pointer ] ; } ;
304
+ ( pointer ) => { { { makeGetValue ( ' pointer' , 0 , 'i8' ) } } } :
305
+ ( pointer ) => { { { makeGetValue ( ' pointer' , 0 , 'u8' ) } } } ;
305
306
case 2 : return signed ?
306
- function readS16FromPointer ( pointer ) { return HEAP16 [ pointer >> 1 ] ; } :
307
- function readU16FromPointer ( pointer ) { return HEAPU16 [ pointer >> 1 ] ; } ;
307
+ ( pointer ) => { { { makeGetValue ( ' pointer' , 0 , 'i16' ) } } } :
308
+ ( pointer ) => { { { makeGetValue ( ' pointer' , 0 , 'u16' ) } } }
308
309
case 4 : return signed ?
309
- function readS32FromPointer ( pointer ) { return HEAP32 [ pointer >> 2 ] ; } :
310
- function readU32FromPointer ( pointer ) { return HEAPU32 [ pointer >> 2 ] ; } ;
310
+ ( pointer ) => { { { makeGetValue ( ' pointer' , 0 , 'i32' ) } } } :
311
+ ( pointer ) => { { { makeGetValue ( ' pointer' , 0 , 'u32' ) } } }
311
312
#if WASM_BIGINT
312
313
case 8 : return signed ?
313
- function readS64FromPointer ( pointer ) { return HEAP64 [ pointer >> 3 ] ; } :
314
- function readU64FromPointer ( pointer ) { return HEAPU64 [ pointer >> 3 ] ; } ;
314
+ ( pointer ) => { { { makeGetValue ( ' pointer' , 0 , 'i64' ) } } } :
315
+ ( pointer ) => { { { makeGetValue ( ' pointer' , 0 , 'u64' ) } } }
315
316
#endif
316
317
default :
317
318
throw new TypeError ( `invalid integer width (${ width } ): ${ name } ` ) ;
@@ -321,18 +322,15 @@ var LibraryEmbind = {
321
322
$enumReadValueFromPointer__deps : [ ] ,
322
323
$enumReadValueFromPointer : ( name , width , signed ) => {
323
324
switch ( width ) {
324
- case 1 : return function ( pointer ) {
325
- var heap = signed ? HEAP8 : HEAPU8 ;
326
- return this [ 'fromWireType' ] ( heap [ pointer ] ) ;
327
- } ;
328
- case 2 : return function ( pointer ) {
329
- var heap = signed ? HEAP16 : HEAPU16 ;
330
- return this [ 'fromWireType' ] ( heap [ pointer >> 1 ] ) ;
331
- } ;
332
- case 4 : return function ( pointer ) {
333
- var heap = signed ? HEAP32 : HEAPU32 ;
334
- return this [ 'fromWireType' ] ( heap [ pointer >> 2 ] ) ;
335
- } ;
325
+ case 1 : return signed ?
326
+ function ( pointer ) { return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , 0 , 'i8' ) } } } ) } :
327
+ function ( pointer ) { return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , 0 , 'u8' ) } } } ) } ;
328
+ case 2 : return signed ?
329
+ function ( pointer ) { return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , 0 , 'i16' ) } } } ) } :
330
+ function ( pointer ) { return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , 0 , 'u16' ) } } } ) } ;
331
+ case 4 : return signed ?
332
+ function ( pointer ) { return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , 0 , 'i32' ) } } } ) } :
333
+ function ( pointer ) { return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , 0 , 'u32' ) } } } ) } ;
336
334
default :
337
335
throw new TypeError ( `invalid integer width (${ width } ): ${ name } ` ) ;
338
336
}
@@ -342,10 +340,10 @@ var LibraryEmbind = {
342
340
$floatReadValueFromPointer : ( name , width ) => {
343
341
switch ( width ) {
344
342
case 4 : return function ( pointer ) {
345
- return this [ 'fromWireType' ] ( HEAPF32 [ pointer >> 2 ] ) ;
343
+ return this [ 'fromWireType' ] ( { { { makeGetValue ( ' pointer' , 0 , 'float' ) } } } ) ;
346
344
} ;
347
345
case 8 : return function ( pointer ) {
348
- return this [ 'fromWireType' ] ( HEAPF64 [ pointer >> 3 ] ) ;
346
+ return this [ 'fromWireType' ] ( { { { makeGetValue ( ' pointer' , 0 , 'double' ) } } } ) ;
349
347
} ;
350
348
default :
351
349
throw new TypeError ( `invalid float width (${ width } ): ${ name } ` ) ;
@@ -401,7 +399,7 @@ var LibraryEmbind = {
401
399
name,
402
400
'fromWireType' : fromWireType ,
403
401
'toWireType' : toWireType ,
404
- 'argPackAdvance' : 8 ,
402
+ 'argPackAdvance' : GenericWireTypeSize ,
405
403
'readValueFromPointer' : integerReadValueFromPointer ( name , size , minRange !== 0 ) ,
406
404
destructorFunction : null , // This type does not need a destructor
407
405
} ) ;
@@ -432,7 +430,7 @@ var LibraryEmbind = {
432
430
}
433
431
return value ;
434
432
} ,
435
- 'argPackAdvance' : 8 ,
433
+ 'argPackAdvance' : GenericWireTypeSize ,
436
434
'readValueFromPointer' : integerReadValueFromPointer ( name , size , ! isUnsignedType ) ,
437
435
destructorFunction : null , // This type does not need a destructor
438
436
} ) ;
@@ -460,7 +458,7 @@ var LibraryEmbind = {
460
458
// https://www.w3.org/TR/wasm-js-api-1/#towebassemblyvalue
461
459
return value ;
462
460
} ,
463
- 'argPackAdvance' : 8 ,
461
+ 'argPackAdvance' : GenericWireTypeSize ,
464
462
'readValueFromPointer' : floatReadValueFromPointer ( name , size ) ,
465
463
destructorFunction : null , // This type does not need a destructor
466
464
} ) ;
@@ -471,9 +469,13 @@ var LibraryEmbind = {
471
469
return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , '0' , 'i32' ) } } } ) ;
472
470
} ,
473
471
472
+ $readPointer : function ( pointer ) {
473
+ return this [ 'fromWireType' ] ( { { { makeGetValue ( 'pointer' , '0' , '*' ) } } } ) ;
474
+ } ,
475
+
474
476
_embind_register_std_string__deps : [
475
477
'$readLatin1String' , '$registerType' ,
476
- '$simpleReadValueFromPointer ' , '$throwBindingError' ,
478
+ '$readPointer ' , '$throwBindingError' ,
477
479
'$stringToUTF8' , '$lengthBytesUTF8' , 'malloc' , 'free' ] ,
478
480
_embind_register_std_string : ( rawType , name ) => {
479
481
name = readLatin1String ( name ) ;
@@ -566,14 +568,14 @@ var LibraryEmbind = {
566
568
}
567
569
return base ;
568
570
} ,
569
- 'argPackAdvance' : 8 ,
570
- 'readValueFromPointer' : simpleReadValueFromPointer ,
571
+ 'argPackAdvance' : GenericWireTypeSize ,
572
+ 'readValueFromPointer' : readPointer ,
571
573
destructorFunction : ( ptr ) => _free ( ptr ) ,
572
574
} ) ;
573
575
} ,
574
576
575
577
_embind_register_std_wstring__deps : [
576
- '$readLatin1String' , '$registerType' , '$simpleReadValueFromPointer ' ,
578
+ '$readLatin1String' , '$registerType' , '$readPointer ' ,
577
579
'$UTF16ToString' , '$stringToUTF16' , '$lengthBytesUTF16' ,
578
580
'$UTF32ToString' , '$stringToUTF32' , '$lengthBytesUTF32' ,
579
581
] ,
@@ -597,7 +599,7 @@ var LibraryEmbind = {
597
599
name,
598
600
'fromWireType' : ( value ) => {
599
601
// Code mostly taken from _embind_register_std_string fromWireType
600
- var length = HEAPU32 [ value >> 2 ] ;
602
+ var length = { { { makeGetValue ( ' value' , 0 , '*' ) } } } ;
601
603
var HEAP = getHeap ( ) ;
602
604
var str ;
603
605
@@ -639,7 +641,7 @@ var LibraryEmbind = {
639
641
}
640
642
return ptr ;
641
643
} ,
642
- 'argPackAdvance' : 8 ,
644
+ 'argPackAdvance ': GenericWireTypeSize ,
643
645
'readValueFromPointer ': simpleReadValueFromPointer ,
644
646
destructorFunction : ( ptr ) => _free ( ptr ) ,
645
647
} ) ;
@@ -658,7 +660,7 @@ var LibraryEmbind = {
658
660
return rv ;
659
661
} ,
660
662
'toWireType' : ( destructors , value ) => Emval . toHandle ( value ) ,
661
- 'argPackAdvance' : 8 ,
663
+ 'argPackAdvance' : GenericWireTypeSize ,
662
664
'readValueFromPointer' : simpleReadValueFromPointer ,
663
665
destructorFunction : null , // This type does not need a destructor
664
666
@@ -687,18 +689,16 @@ var LibraryEmbind = {
687
689
var TA = typeMapping [ dataTypeIndex ] ;
688
690
689
691
function decodeMemoryView ( handle ) {
690
- handle = handle >> 2 ;
691
- var heap = HEAPU32 ;
692
- var size = heap [ handle ] ; // in elements
693
- var data = heap [ handle + 1 ] ; // byte offset into emscripten heap
694
- return new TA ( heap . buffer , data , size ) ;
692
+ var size = { { { makeGetValue ( 'handle' , 0 , '*' ) } } } ;
693
+ var data = { { { makeGetValue ( 'handle' , POINTER_SIZE , '*' ) } } } ;
694
+ return new TA ( HEAP8 . buffer , data , size ) ;
695
695
}
696
696
697
697
name = readLatin1String ( name ) ;
698
698
registerType ( rawType , {
699
699
name,
700
700
'fromWireType' : decodeMemoryView ,
701
- 'argPackAdvance' : 8 ,
701
+ 'argPackAdvance' : GenericWireTypeSize ,
702
702
'readValueFromPointer' : decodeMemoryView ,
703
703
} , {
704
704
ignoreDuplicateRegistrations : true ,
@@ -1098,7 +1098,7 @@ var LibraryEmbind = {
1098
1098
}
1099
1099
return ptr ;
1100
1100
} ,
1101
- 'argPackAdvance' : 8 ,
1101
+ 'argPackAdvance' : GenericWireTypeSize ,
1102
1102
'readValueFromPointer' : simpleReadValueFromPointer ,
1103
1103
destructorFunction : rawDestructor ,
1104
1104
} ] ;
@@ -1210,7 +1210,7 @@ var LibraryEmbind = {
1210
1210
}
1211
1211
return ptr ;
1212
1212
} ,
1213
- 'argPackAdvance' : 8 ,
1213
+ 'argPackAdvance' : GenericWireTypeSize ,
1214
1214
'readValueFromPointer' : simpleReadValueFromPointer ,
1215
1215
destructorFunction : rawDestructor ,
1216
1216
} ] ;
@@ -1340,14 +1340,14 @@ var LibraryEmbind = {
1340
1340
} ,
1341
1341
1342
1342
$init_RegisteredPointer__deps : [
1343
- '$simpleReadValueFromPointer ' ,
1343
+ '$readPointer ' ,
1344
1344
'$RegisteredPointer_getPointee' , '$RegisteredPointer_destructor' ,
1345
1345
'$RegisteredPointer_deleteObject' , '$RegisteredPointer_fromWireType' ] ,
1346
1346
$init_RegisteredPointer : ( ) = > {
1347
1347
RegisteredPointer . prototype . getPointee = RegisteredPointer_getPointee ;
1348
1348
RegisteredPointer . prototype . destructor = RegisteredPointer_destructor ;
1349
- RegisteredPointer . prototype [ 'argPackAdvance' ] = 8 ;
1350
- RegisteredPointer . prototype [ 'readValueFromPointer' ] = simpleReadValueFromPointer ;
1349
+ RegisteredPointer . prototype [ 'argPackAdvance' ] = GenericWireTypeSize ;
1350
+ RegisteredPointer . prototype [ 'readValueFromPointer' ] = readPointer ;
1351
1351
RegisteredPointer . prototype [ 'deleteObject' ] = RegisteredPointer_deleteObject ;
1352
1352
RegisteredPointer . prototype [ 'fromWireType' ] = RegisteredPointer_fromWireType ;
1353
1353
} ,
@@ -2379,7 +2379,7 @@ var LibraryEmbind = {
2379
2379
return this . constructor . values [ c ] ;
2380
2380
} ,
2381
2381
'toWireType' : ( destructors , c ) => c . value ,
2382
- 'argPackAdvance' : 8 ,
2382
+ 'argPackAdvance' : GenericWireTypeSize ,
2383
2383
'readValueFromPointer' : enumReadValueFromPointer ( name , size , isSigned ) ,
2384
2384
destructorFunction : null ,
2385
2385
} ) ;
0 commit comments