mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpgscm: Merge 'opexe_4'.
* tests/gpgscm/scheme.c (opexe_4): 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 <justus@g10code.com>
This commit is contained in:
parent
d591ab65d3
commit
4f835104b9
2 changed files with 37 additions and 46 deletions
|
@ -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_4(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);
|
||||
|
@ -4633,17 +4632,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
|
|||
s_retbool(car(sc->args) == cadr(sc->args));
|
||||
CASE(OP_EQV): /* eqv? */
|
||||
s_retbool(eqv(car(sc->args), cadr(sc->args)));
|
||||
default:
|
||||
snprintf(sc->strbuff,STRBUFFSIZE,"%d: illegal operator", sc->op);
|
||||
Error_0(sc,sc->strbuff);
|
||||
}
|
||||
return sc->T;
|
||||
}
|
||||
|
||||
static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
|
||||
pointer x, y;
|
||||
|
||||
switch (op) {
|
||||
CASE(OP_FORCE): /* force */
|
||||
sc->code = car(sc->args);
|
||||
if (is_promise(sc->code)) {
|
||||
|
@ -4823,7 +4812,6 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
|
|||
}
|
||||
s_return(sc,p);
|
||||
break;
|
||||
default: assert (! "reached");
|
||||
}
|
||||
|
||||
#if USE_STRING_PORTS
|
||||
|
@ -4889,6 +4877,9 @@ static pointer opexe_4(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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue