*/ void Trap_Num(REBCNT err, REBCNT num) /* ***********************************************************************/ { DS_PUSH_INTEGER(num); Trap1(err, DS_TOP); }
static int Do_Ordinal(REBVAL *ds, REBINT n) { // Is only valid when returned from ACTION function itself. REBACT action = Value_Dispatch[VAL_TYPE(D_ARG(1))]; DS_PUSH_INTEGER(n); //DSF_FUNC(ds) // needs to be set to PICK action! return action(ds, A_PICK); // returns R_RET and other cases }
*/ void Trap_Port(REBCNT errnum, REBSER *port, REBINT err_code) /* ***********************************************************************/ { REBVAL *spec = OFV(port, STD_PORT_SPEC); REBVAL *val; if (!IS_OBJECT(spec)) Trap0(RE_INVALID_PORT); val = Get_Object(spec, STD_PORT_SPEC_HEAD_REF); // most informative if (IS_NONE(val)) val = Get_Object(spec, STD_PORT_SPEC_HEAD_TITLE); DS_PUSH_INTEGER(err_code); Trap2(errnum, val, DS_TOP); }