aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/shader/slang/slang_link.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-12-22 17:33:44 +0000
committermarha <marha@users.sourceforge.net>2009-12-22 17:33:44 +0000
commitb729d9e1cc1c60e415da24143cabcbaccb525ed7 (patch)
tree54fc81d1a046dc5ec6f4aa2a2d8a2ad015c423fd /mesalib/src/mesa/shader/slang/slang_link.c
parent0695dfb71ca6fe132d15a4d0890e8a868183adf9 (diff)
downloadvcxsrv-b729d9e1cc1c60e415da24143cabcbaccb525ed7.tar.gz
vcxsrv-b729d9e1cc1c60e415da24143cabcbaccb525ed7.tar.bz2
vcxsrv-b729d9e1cc1c60e415da24143cabcbaccb525ed7.zip
Updated to mesa_7_6_1_rc1
Diffstat (limited to 'mesalib/src/mesa/shader/slang/slang_link.c')
-rw-r--r--mesalib/src/mesa/shader/slang/slang_link.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/mesalib/src/mesa/shader/slang/slang_link.c b/mesalib/src/mesa/shader/slang/slang_link.c
index 8f2b40d5d..144c12652 100644
--- a/mesalib/src/mesa/shader/slang/slang_link.c
+++ b/mesalib/src/mesa/shader/slang/slang_link.c
@@ -104,7 +104,7 @@ link_varying_vars(GLcontext *ctx,
GLuint *map, i, firstVarying, newFile;
GLbitfield *inOutFlags;
- map = (GLuint *) malloc(prog->Varying->NumParameters * sizeof(GLuint));
+ map = (GLuint *) _mesa_malloc(prog->Varying->NumParameters * sizeof(GLuint));
if (!map)
return GL_FALSE;
@@ -135,6 +135,7 @@ link_varying_vars(GLcontext *ctx,
&shProg->Varying->Parameters[j];
if (var->Size != v->Size) {
link_error(shProg, "mismatched varying variable types");
+ _mesa_free(map);
return GL_FALSE;
}
if (!bits_agree(var->Flags, v->Flags, PROG_PARAM_BIT_CENTROID)) {
@@ -142,6 +143,7 @@ link_varying_vars(GLcontext *ctx,
_mesa_snprintf(msg, sizeof(msg),
"centroid modifier mismatch for '%s'", var->Name);
link_error(shProg, msg);
+ _mesa_free(map);
return GL_FALSE;
}
if (!bits_agree(var->Flags, v->Flags, PROG_PARAM_BIT_INVARIANT)) {
@@ -149,6 +151,7 @@ link_varying_vars(GLcontext *ctx,
_mesa_snprintf(msg, sizeof(msg),
"invariant modifier mismatch for '%s'", var->Name);
link_error(shProg, msg);
+ _mesa_free(map);
return GL_FALSE;
}
}
@@ -160,6 +163,7 @@ link_varying_vars(GLcontext *ctx,
if (shProg->Varying->NumParameters > ctx->Const.MaxVarying) {
link_error(shProg, "Too many varying variables");
+ _mesa_free(map);
return GL_FALSE;
}
@@ -199,7 +203,7 @@ link_varying_vars(GLcontext *ctx,
}
}
- free(map);
+ _mesa_free(map);
/* these will get recomputed before linking is completed */
prog->InputsRead = 0x0;
@@ -670,6 +674,7 @@ get_main_shader(GLcontext *ctx,
!shader->Main ||
shader->UnresolvedRefs) {
link_error(shProg, "Unresolved symbols");
+ _mesa_free_shader(ctx, shader);
return NULL;
}
}