summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian <brian@yutani.localnet.net>2007-02-26 15:06:56 -0700
committerBrian <brian@yutani.localnet.net>2007-02-26 15:06:56 -0700
commit6817407d498ff0c5074321b965673f6efdaaeb21 (patch)
tree4c594b39c564382b81385bf3736ee71c0d12992c
parent365f8fb0dd19a8fa43b1de8e89793059095981db (diff)
fix error flagging
-rw-r--r--src/mesa/shader/slang/slang_compile.c11
-rw-r--r--src/mesa/shader/slang/slang_log.c7
-rw-r--r--src/mesa/shader/slang/slang_log.h3
3 files changed, 9 insertions, 12 deletions
diff --git a/src/mesa/shader/slang/slang_compile.c b/src/mesa/shader/slang/slang_compile.c
index 1a4c7d31f1..dc2e680e99 100644
--- a/src/mesa/shader/slang/slang_compile.c
+++ b/src/mesa/shader/slang/slang_compile.c
@@ -2070,16 +2070,9 @@ _slang_compile(GLcontext *ctx, struct gl_shader *shader)
success = compile_shader(ctx, &obj, type, &info_log, shader);
- if (success && !info_log.text) {
-#if 0
- slang_create_uniforms(&object->expdata, shader);
- _mesa_print_program(program);
- _mesa_print_program_parameters(ctx, program);
-#endif
- }
- else {
+ if (!success || info_log.error_flag) {
success = GL_FALSE;
- /* XXX more work on info log needed here */
+ /* copy info-log string to shader object */
if (info_log.text) {
if (shader->InfoLog) {
free(shader->InfoLog);
diff --git a/src/mesa/shader/slang/slang_log.c b/src/mesa/shader/slang/slang_log.c
index b6545b2c2e..e838744491 100644
--- a/src/mesa/shader/slang/slang_log.c
+++ b/src/mesa/shader/slang/slang_log.c
@@ -34,7 +34,8 @@ void
slang_info_log_construct(slang_info_log * log)
{
log->text = NULL;
- log->dont_free_text = 0;
+ log->dont_free_text = GL_FALSE;
+ log->error_flag = GL_FALSE;
}
void
@@ -97,6 +98,7 @@ slang_info_log_error(slang_info_log * log, const char *msg, ...)
va_start(va, msg);
_mesa_vsprintf(buf, msg, va);
va_end(va);
+ log->error_flag = GL_TRUE;
if (slang_info_log_message(log, "Error", buf))
return 1;
slang_info_log_memory(log);
@@ -122,7 +124,8 @@ void
slang_info_log_memory(slang_info_log * log)
{
if (!slang_info_log_message(log, "Error", "Out of memory.")) {
- log->dont_free_text = 1;
+ log->dont_free_text = GL_TRUE;
+ log->error_flag = GL_TRUE;
log->text = out_of_memory;
}
}
diff --git a/src/mesa/shader/slang/slang_log.h b/src/mesa/shader/slang/slang_log.h
index e4ca3a22f1..dcaba0285a 100644
--- a/src/mesa/shader/slang/slang_log.h
+++ b/src/mesa/shader/slang/slang_log.h
@@ -30,7 +30,8 @@
typedef struct slang_info_log_
{
char *text;
- int dont_free_text;
+ GLboolean dont_free_text;
+ GLboolean error_flag;
} slang_info_log;