]> git.sur5r.net Git - cc65/commitdiff
Reversed the last change because it did not work
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 22 Nov 2002 00:33:29 +0000 (00:33 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 22 Nov 2002 00:33:29 +0000 (00:33 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@1566 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/symtab.c

index 8b9425767f03e8a6e84302c8703c85f67d48ce97..a8edcad4df921a4a5a74db1e817ec2b599bb2496 100644 (file)
@@ -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);
 }