]> git.sur5r.net Git - cc65/commitdiff
Minor code optimization.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 27 Oct 2012 19:32:42 +0000 (19:32 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 27 Oct 2012 19:32:42 +0000 (19:32 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@5883 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/symtab.c

index 116e7a0c39f19a9f86cf4b2428069f9ba120e699..776f005b149239b4f6db4dfbcb15fc1ac02cf95a 100644 (file)
@@ -428,15 +428,18 @@ SymEntry* SymFindAny (SymTable* Scope, const StrBuf* Name)
  * never create a new symbol, since this can only be done in one specific
  * scope.
  */
-{
+{                 
+    /* Generate the name hash */
+    unsigned Hash = HashBuf (Name);
+
+    /* Search for the symbol */
     SymEntry* Sym;
     do {
         /* Search in the current table. Ignore entries flagged with SF_UNUSED,
          * because for such symbols there is a real entry in one of the parent
          * scopes.
          */
-        unsigned Hash = HashBuf (Name) % Scope->TableSlots;
-        if (SymSearchTree (Scope->Table[Hash], Name, &Sym) == 0) {
+        if (SymSearchTree (Scope->Table[Hash % Scope->TableSlots], Name, &Sym) == 0) {
             if (Sym->Flags & SF_UNUSED) {
                 Sym = 0;
             } else {