From 08b095c60458f7ce26ed6ec44c96028481575aa8 Mon Sep 17 00:00:00 2001
From: cuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Date: Fri, 22 Nov 2002 00:33:29 +0000
Subject: [PATCH] Reversed the last change because it did not work

git-svn-id: svn://svn.cc65.org/cc65/trunk@1566 b7a2c559-68d2-44c3-8de9-860c34a00d81
---
 src/ca65/symtab.c | 40 +++++++++++++++++++---------------------
 1 file changed, 19 insertions(+), 21 deletions(-)

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);
 }