From b726f44a0221af53169b7890da0fda8e4ce73c52 Mon Sep 17 00:00:00 2001 From: Daniel_Cortez Date: Sun, 12 Nov 2017 22:49:09 +0700 Subject: [PATCH] emit/__emit: Simplify the code in emit_parm1_lbl() and emit_do_case() --- source/compiler/sc1.c | 54 ++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/source/compiler/sc1.c b/source/compiler/sc1.c index fef6b09..d6b9d86 100644 --- a/source/compiler/sc1.c +++ b/source/compiler/sc1.c @@ -5941,6 +5941,21 @@ static void emit_param_data(ucell *p,int size) } while (++curpusage|=uREAD; + *p=*(ucell *)&sym->addr; +} + static void OPHANDLER_CALL emit_noop(char *name) { (void)name; @@ -5969,17 +5984,10 @@ static void OPHANDLER_CALL emit_parm1_gvar(char *name) static void OPHANDLER_CALL emit_parm1_lbl(char *name) { - char *str; - cell val; - symbol *sym; - int tok; + ucell p[1]; - tok=lex(&val,&str); - if (tok!=tSYMBOL) - emit_invalid_token(tSYMBOL,tok); - sym=fetchlab(str); - sym->usage|=uREAD; - outinstr(name,1,(ucell *)&sym->addr); + emit_param_label(&p[0]); + outinstr(name,(sizeof p / sizeof p[0]),p); } static void OPHANDLER_CALL emit_parm2_num(char *name) @@ -6057,29 +6065,11 @@ static void OPHANDLER_CALL emit_parm5_gvar(char *name) static void OPHANDLER_CALL emit_do_case(char *name) { - /* case