summaryrefslogtreecommitdiff
path: root/src/mesa/main
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-01-02 23:02:35 +1100
committerBen Skeggs <skeggsb@gmail.com>2008-01-02 23:02:35 +1100
commit720fd7b5e993c7e77e5b1fc75edeedd110532e0e (patch)
tree568e60e4e3a09ca09a16fc59b709c81b7c9a23ee /src/mesa/main
parent92ee96d83d26e56857b2999356d7c2a75e6eaf76 (diff)
parentda92ac01e80e8a83233b1d4a881503bfc2806a1a (diff)
Merge branch 'upstream-gallium-0.1' into darktama-gallium-0.1
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/context.c12
-rw-r--r--src/mesa/main/ffvertex_prog.c10
2 files changed, 15 insertions, 7 deletions
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 563a89e686..a9f9bd9da4 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -554,8 +554,13 @@ alloc_shared_state( GLcontext *ctx )
(*ctx->Driver.DeleteTexture)(ctx, ss->DefaultCubeMap);
if (ss->DefaultRect)
(*ctx->Driver.DeleteTexture)(ctx, ss->DefaultRect);
- if (ss)
- _mesa_free(ss);
+ if (ss->Default1DArray)
+ (*ctx->Driver.DeleteTexture)(ctx, ss->Default1DArray);
+ if (ss->Default2DArray)
+ (*ctx->Driver.DeleteTexture)(ctx, ss->Default2DArray);
+
+ _mesa_free(ss);
+
return GL_FALSE;
}
@@ -678,6 +683,9 @@ free_shared_state( GLcontext *ctx, struct gl_shared_state *ss )
ctx->Driver.DeleteTexture(ctx, ss->Default3D);
ctx->Driver.DeleteTexture(ctx, ss->DefaultCubeMap);
ctx->Driver.DeleteTexture(ctx, ss->DefaultRect);
+ ctx->Driver.DeleteTexture(ctx, ss->Default1DArray);
+ ctx->Driver.DeleteTexture(ctx, ss->Default2DArray);
+
/* all other textures */
_mesa_HashDeleteAll(ss->TexObjects, delete_texture_cb, ctx);
_mesa_DeleteHashTable(ss->TexObjects);
diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c
index 8fcb9e5b14..4a9a0cd975 100644
--- a/src/mesa/main/ffvertex_prog.c
+++ b/src/mesa/main/ffvertex_prog.c
@@ -1,6 +1,6 @@
/**************************************************************************
*
- * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -1529,6 +1529,8 @@ _mesa_get_fixed_func_vertex_program(GLcontext *ctx)
prog = (struct gl_vertex_program *)
ctx->Driver.NewProgram(ctx, GL_VERTEX_PROGRAM_ARB, 0);
+ if (!prog)
+ return NULL;
create_new_program( key, prog,
ctx->Const.VertexProgram.MaxTemps );
@@ -1541,10 +1543,8 @@ _mesa_get_fixed_func_vertex_program(GLcontext *ctx)
_mesa_program_cache_insert(ctx, ctx->VertexProgram.Cache,
key, sizeof(*key), &prog->Base);
}
- else {
- /* use cached program */
- _mesa_free(key);
- }
+
+ _mesa_free(key);
return prog;
}