silently ignore DeleteProgram/Shader(id=0)
authorBrian <brian@yutani.localnet.net>
Thu, 15 Mar 2007 22:07:39 +0000 (16:07 -0600)
committerBrian <brian@yutani.localnet.net>
Thu, 15 Mar 2007 22:07:39 +0000 (16:07 -0600)
src/mesa/main/shaders.c

index 4c8ba47bcb37c991611f3510cdfc78458060d11a..58be1f46e570513a23febfce0bb531ce8f31cca2 100644 (file)
@@ -110,15 +110,17 @@ _mesa_CreateProgramObjectARB(void)
 void GLAPIENTRY
 _mesa_DeleteObjectARB(GLhandleARB obj)
 {
-   GET_CURRENT_CONTEXT(ctx);
-   if (ctx->Driver.IsProgram(ctx, obj)) {
-      ctx->Driver.DeleteProgram2(ctx, obj);
-   }
-   else if (ctx->Driver.IsShader(ctx, obj)) {
-      ctx->Driver.DeleteShader(ctx, obj);
-   }
-   else {
-      /* error? */
+   if (obj) {
+      GET_CURRENT_CONTEXT(ctx);
+      if (ctx->Driver.IsProgram(ctx, obj)) {
+         ctx->Driver.DeleteProgram2(ctx, obj);
+      }
+      else if (ctx->Driver.IsShader(ctx, obj)) {
+         ctx->Driver.DeleteShader(ctx, obj);
+      }
+      else {
+         /* error? */
+      }
    }
 }
 
@@ -126,16 +128,20 @@ _mesa_DeleteObjectARB(GLhandleARB obj)
 void GLAPIENTRY
 _mesa_DeleteProgram(GLuint name)
 {
-   GET_CURRENT_CONTEXT(ctx);
-   ctx->Driver.DeleteProgram2(ctx, name);
+   if (name) {
+      GET_CURRENT_CONTEXT(ctx);
+      ctx->Driver.DeleteProgram2(ctx, name);
+   }
 }
 
 
 void GLAPIENTRY
 _mesa_DeleteShader(GLuint name)
 {
-   GET_CURRENT_CONTEXT(ctx);
-   ctx->Driver.DeleteShader(ctx, name);
+   if (name) {
+      GET_CURRENT_CONTEXT(ctx);
+      ctx->Driver.DeleteShader(ctx, name);
+   }
 }