@@ -363,8 +363,8 @@ x*/ int Do_Callback(REBSER *obj, u32 name, RXIARG *args, RXIARG *result)
363
363
364
364
// Set extension fields needed:
365
365
val = FRM_VALUE (obj , STD_EXTENSION_LIB_BASE );
366
- VAL_SET (val , REB_HANDLE );
367
- VAL_I32 (val ) = ext -> index ;
366
+ SET_HANDLE (val , NULL , SYM_EXTENSION , HANDLE_FUNCTION );
367
+ VAL_HANDLE_I32 (val ) = ext -> index ;
368
368
if (!D_REF (2 )) * FRM_VALUE (obj , STD_EXTENSION_LIB_FILE ) = * D_ARG (1 );
369
369
Set_Binary (FRM_VALUE (obj , STD_EXTENSION_LIB_BOOT ), src );
370
370
@@ -390,13 +390,14 @@ x*/ int Do_Callback(REBSER *obj, u32 name, RXIARG *args, RXIARG *result)
390
390
VAL_LEN (def ) != 3
391
391
|| !(IS_MODULE (val ) || IS_OBJECT (val ))
392
392
|| !IS_HANDLE (VAL_OBJ_VALUE (val , 1 ))
393
+ || VAL_HANDLE_TYPE (VAL_OBJ_VALUE (val , 1 )) != SYM_EXTENSION
393
394
|| !IS_INTEGER (val + 1 )
394
395
|| VAL_INT64 (val + 1 ) > 0xffff
395
396
) Trap1 (RE_BAD_FUNC_DEF , def );
396
397
397
398
val = VAL_OBJ_VALUE (val , 1 );
398
399
if (
399
- !(ext = & Ext_List [VAL_I32 (val )])
400
+ !(ext = & Ext_List [VAL_HANDLE_I32 (val )])
400
401
|| !(ext -> call )
401
402
) Trap1 (RE_BAD_EXTENSION , def );
402
403
@@ -441,7 +442,7 @@ x*/ int Do_Callback(REBSER *obj, u32 name, RXIARG *args, RXIARG *result)
441
442
// All of these were checked above on definition:
442
443
val = BLK_HEAD (VAL_FUNC_BODY (value ));
443
444
cmd = (int )VAL_INT64 (val + 1 );
444
- ext = & Ext_List [VAL_I32 (VAL_OBJ_VALUE (val , 1 ))]; // Handler
445
+ ext = & Ext_List [VAL_HANDLE_I32 (VAL_OBJ_VALUE (val , 1 ))]; // Handler
445
446
446
447
// Copy args to command frame (array of args):
447
448
RXA_COUNT (& frm ) = argc = SERIES_TAIL (VAL_FUNC_ARGS (value ))- 1 ; // not self
@@ -573,7 +574,7 @@ x*/ int Do_Callback(REBSER *obj, u32 name, RXIARG *args, RXIARG *result)
573
574
// Call the command (also supports different extension modules):
574
575
func = BLK_HEAD (VAL_FUNC_BODY (func ));
575
576
n = (REBCNT )VAL_INT64 (func + 1 );
576
- ext = & Ext_List [VAL_I32 (VAL_OBJ_VALUE (func , 1 ))]; // Handler
577
+ ext = & Ext_List [VAL_HANDLE_I32 (VAL_OBJ_VALUE (func , 1 ))]; // Handler
577
578
n = ext -> call (n , & frm , context );
578
579
val = DS_RETURN ;
579
580
switch (n ) {
0 commit comments