diff options
author | Justus Winter <[email protected]> | 2017-03-29 11:57:54 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2017-04-10 12:57:19 +0000 |
commit | 72674f169386d68a6d0fc2ba4bc5a065435802a0 (patch) | |
tree | 4d8fb33a4b0d6b977848b083afb4cb37abe99251 | |
parent | gpgscm: Merge 'opexe_4'. (diff) | |
download | libgpg-error-72674f169386d68a6d0fc2ba4bc5a065435802a0.tar.gz libgpg-error-72674f169386d68a6d0fc2ba4bc5a065435802a0.zip |
gpgscm: Merge 'opexe_5'.
* tests/gpgscm/scheme.c (opexe_5): Merge into 'opexe_0'.
* tests/gpgscm/opdefines.h: Adapt.
--
Having separate functions to execute opcodes reduces our ability to
thread the code and prevents the dispatch_table from being moved to
rodata.
Signed-off-by: Justus Winter <[email protected]>
-rw-r--r-- | opdefines.h | 36 | ||||
-rw-r--r-- | scheme.c | 18 |
2 files changed, 18 insertions, 36 deletions
diff --git a/opdefines.h b/opdefines.h index 7bdaefb..9cb723a 100644 --- a/opdefines.h +++ b/opdefines.h @@ -178,24 +178,24 @@ _OP_DEF(opexe_0, "close-output-port", 1, 1, TST_OUTPORT, OP_CLOSE_OUTPORT ) _OP_DEF(opexe_0, "interaction-environment", 0, 0, 0, OP_INT_ENV ) _OP_DEF(opexe_0, "current-environment", 0, 0, 0, OP_CURR_ENV ) - _OP_DEF(opexe_5, "read", 0, 1, TST_INPORT, OP_READ ) - _OP_DEF(opexe_5, "read-char", 0, 1, TST_INPORT, OP_READ_CHAR ) - _OP_DEF(opexe_5, "peek-char", 0, 1, TST_INPORT, OP_PEEK_CHAR ) - _OP_DEF(opexe_5, "char-ready?", 0, 1, TST_INPORT, OP_CHAR_READY ) - _OP_DEF(opexe_5, "set-input-port", 1, 1, TST_INPORT, OP_SET_INPORT ) - _OP_DEF(opexe_5, "set-output-port", 1, 1, TST_OUTPORT, OP_SET_OUTPORT ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDSEXPR ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDLIST ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDDOT ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDQUOTE ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDQQUOTE ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDQQUOTEVEC ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDUNQUOTE ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDUQTSP ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_RDVEC ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_P0LIST ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_P1LIST ) - _OP_DEF(opexe_5, 0, 0, 0, 0, OP_PVECFROM ) + _OP_DEF(opexe_0, "read", 0, 1, TST_INPORT, OP_READ ) + _OP_DEF(opexe_0, "read-char", 0, 1, TST_INPORT, OP_READ_CHAR ) + _OP_DEF(opexe_0, "peek-char", 0, 1, TST_INPORT, OP_PEEK_CHAR ) + _OP_DEF(opexe_0, "char-ready?", 0, 1, TST_INPORT, OP_CHAR_READY ) + _OP_DEF(opexe_0, "set-input-port", 1, 1, TST_INPORT, OP_SET_INPORT ) + _OP_DEF(opexe_0, "set-output-port", 1, 1, TST_OUTPORT, OP_SET_OUTPORT ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_RDSEXPR ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_RDLIST ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_RDDOT ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_RDQUOTE ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_RDQQUOTE ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_RDQQUOTEVEC ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_RDUNQUOTE ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_RDUQTSP ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_RDVEC ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_P0LIST ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_P1LIST ) + _OP_DEF(opexe_0, 0, 0, 0, 0, OP_PVECFROM ) _OP_DEF(opexe_6, "length", 1, 1, TST_LIST, OP_LIST_LENGTH ) _OP_DEF(opexe_6, "assq", 2, 2, TST_NONE, OP_ASSQ ) _OP_DEF(opexe_6, "get-closure-code", 1, 1, TST_NONE, OP_GET_CLOSURE ) @@ -438,7 +438,6 @@ static pointer reverse_in_place(scheme *sc, pointer term, pointer list); static pointer revappend(scheme *sc, pointer a, pointer b); static void dump_stack_mark(scheme *); static pointer opexe_0(scheme *sc, enum scheme_opcodes op); -static pointer opexe_5(scheme *sc, enum scheme_opcodes op); static pointer opexe_6(scheme *sc, enum scheme_opcodes op); static void Eval_Cycle(scheme *sc, enum scheme_opcodes op); static void assign_syntax(scheme *sc, char *name); @@ -4877,24 +4876,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) { CASE(OP_CURR_ENV): /* current-environment */ s_return(sc,sc->envir); - default: - snprintf(sc->strbuff,STRBUFFSIZE,"%d: illegal operator", sc->op); - Error_0(sc,sc->strbuff); - } - return sc->T; -} -static pointer opexe_5(scheme *sc, enum scheme_opcodes op) { - pointer x; - - if(sc->nesting!=0) { - int n=sc->nesting; - sc->nesting=0; - sc->retcode=-1; - Error_1(sc,"unmatched parentheses:",mk_integer(sc,n)); - } - - switch (op) { /* ========== reading part ========== */ CASE(OP_READ): if(!is_pair(sc->args)) { |