From c9a415663ad92a703b5b1e1e70cd41727114b760 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 25 Jun 2004 14:46:48 +0000 Subject: remove program from hash table when deleted (bug 979514) --- src/mesa/shader/program.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/mesa/shader/program.c b/src/mesa/shader/program.c index b58b5e003d2..8dc6ecb7421 100644 --- a/src/mesa/shader/program.c +++ b/src/mesa/shader/program.c @@ -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]); } } } -- cgit v1.2.3