From: cuz Date: Fri, 22 Nov 2002 00:33:29 +0000 (+0000) Subject: Reversed the last change because it did not work X-Git-Tag: V2.12.0~2067 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=08b095c60458f7ce26ed6ec44c96028481575aa8;p=cc65 Reversed the last change because it did not work git-svn-id: svn://svn.cc65.org/cc65/trunk@1566 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/ca65/symtab.c b/src/ca65/symtab.c index 8b9425767..a8edcad4d 100644 --- a/src/ca65/symtab.c +++ b/src/ca65/symtab.c @@ -360,6 +360,21 @@ static SymEntry* SymFindAny (SymTable* Tab, const char* Name) +static SymEntry* SymRefInternal (SymTable* Table, const char* Name) +/* Search for the symbol in the given table and return it */ +{ + /* Try to find the symbol, create a new one if the symbol does not exist */ + SymEntry* S = SymFind (Table, Name, SF_ALLOC_NEW); + + /* Mark the symbol as referenced */ + S->Flags |= SF_REFERENCED; + + /* Return it */ + return S; +} + + + void SymEnterLevel (void) /* Enter a new lexical level */ { @@ -439,19 +454,8 @@ void SymDef (const char* Name, ExprNode* Expr, int ZP, int Label) SymEntry* SymRef (const char* Name) /* Search for the symbol and return it */ { - /* Try to find the symbol in any visible table */ - SymEntry* S = SymFindAny (SymTab, Name); - - /* If we could not find the symbol, create it in the local symtab */ - if (S == 0) { - S = SymFind (SymTab, Name, SF_ALLOC_NEW); - } - - /* Mark the symbol as referenced */ - S->Flags |= SF_REFERENCED; - - /* Return it */ - return S; + /* Reference the symbol in the current table */ + return SymRefInternal (SymTab, Name); } @@ -459,14 +463,8 @@ SymEntry* SymRef (const char* Name) SymEntry* SymRefGlobal (const char* Name) /* Search for the symbol in the global namespace and return it */ { - /* Try to find the symbol, create a new one if the symbol does not exist */ - SymEntry* S = SymFind (RootTab, Name, SF_ALLOC_NEW); - - /* Mark the symbol as referenced */ - S->Flags |= SF_REFERENCED; - - /* Return it */ - return S; + /* Reference the symbol in the current table */ + return SymRefInternal (RootTab, Name); }