remove program from hash table when deleted (bug 979514)
authorBrian Paul <brian.paul@tungstengraphics.com>
Fri, 25 Jun 2004 14:46:48 +0000 (14:46 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Fri, 25 Jun 2004 14:46:48 +0000 (14:46 +0000)
src/mesa/shader/program.c

index b58b5e003d2b760f5923dff68832158134a77b1b..8dc6ecb74212c97ec9cb6c49ced4c44b305c7091 100644 (file)
@@ -974,14 +974,13 @@ _mesa_DeletePrograms(GLsizei n, const GLuint *ids)
                ctx->Driver.DeleteProgram(ctx, prog);
             }
          }
-        else {
-           /* This is necessary as we can't tell from HashLookup
-            * whether the entry exists with data == 0, or if it
-            * doesn't exist at all.  As GenPrograms creates the first
-            * case below, need to call Remove() to avoid memory leak:
-            */
-            _mesa_HashRemove(ctx->Shared->Programs, ids[i]);
-        }
+         /* Always remove entry from hash table.
+          * This is necessary as we can't tell from HashLookup
+          * whether the entry exists with data == 0, or if it
+          * doesn't exist at all.  As GenPrograms creates the first
+          * case below, need to call Remove() to avoid memory leak:
+          */
+         _mesa_HashRemove(ctx->Shared->Programs, ids[i]);
       }
    }
 }