Mesa (master): mesa: Don' t try to remove an internal shader_program from the hash.
Eric Anholt
anholt at kemper.freedesktop.org
Fri Mar 11 20:57:02 UTC 2011
Module: Mesa
Branch: master
Commit: 9c7231c1d9cda244444dbfa05f15ead1bf581dc3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9c7231c1d9cda244444dbfa05f15ead1bf581dc3
Author: Eric Anholt <eric at anholt.net>
Date: Fri Nov 5 07:23:45 2010 -0700
mesa: Don't try to remove an internal shader_program from the hash.
It fails on assertions if the key isn't actually present.
---
src/mesa/main/shaderobj.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index 1d75845..62de23b 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -72,7 +72,8 @@ _mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
deleteFlag = (old->RefCount == 0);
if (deleteFlag) {
- _mesa_HashRemove(ctx->Shared->ShaderObjects, old->Name);
+ if (old->Name != 0)
+ _mesa_HashRemove(ctx->Shared->ShaderObjects, old->Name);
ctx->Driver.DeleteShader(ctx, old);
}
@@ -213,7 +214,8 @@ _mesa_reference_shader_program(struct gl_context *ctx,
deleteFlag = (old->RefCount == 0);
if (deleteFlag) {
- _mesa_HashRemove(ctx->Shared->ShaderObjects, old->Name);
+ if (old->Name != 0)
+ _mesa_HashRemove(ctx->Shared->ShaderObjects, old->Name);
ctx->Driver.DeleteShaderProgram(ctx, old);
}
More information about the mesa-commit
mailing list