summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--glsl_parser_extras.cpp10
-rw-r--r--glsl_parser_extras.h4
2 files changed, 12 insertions, 2 deletions
diff --git a/glsl_parser_extras.cpp b/glsl_parser_extras.cpp
index 4183d13856..88767af204 100644
--- a/glsl_parser_extras.cpp
+++ b/glsl_parser_extras.cpp
@@ -73,11 +73,15 @@ _mesa_glsl_error(YYLTYPE *locp, _mesa_glsl_parse_state *state,
va_end(ap);
printf("%s\n", buf);
+
+ if (state->info_log)
+ free(state->info_log);
+ state->info_log = strdup(buf);
}
void
-_mesa_glsl_warning(const YYLTYPE *locp, const _mesa_glsl_parse_state *state,
+_mesa_glsl_warning(const YYLTYPE *locp, _mesa_glsl_parse_state *state,
const char *fmt, ...)
{
char buf[1024];
@@ -92,6 +96,10 @@ _mesa_glsl_warning(const YYLTYPE *locp, const _mesa_glsl_parse_state *state,
va_end(ap);
printf("%s\n", buf);
+
+ if (!state->info_log) {
+ state->info_log = strdup(buf);
+ }
}
diff --git a/glsl_parser_extras.h b/glsl_parser_extras.h
index 125c675a92..b06b3fe920 100644
--- a/glsl_parser_extras.h
+++ b/glsl_parser_extras.h
@@ -65,6 +65,8 @@ struct _mesa_glsl_parse_state {
const glsl_type **user_structures;
unsigned num_user_structures;
+ char *info_log;
+
/**
* \name Enable bits for GLSL extensions
*/
@@ -95,7 +97,7 @@ extern void _mesa_glsl_error(YYLTYPE *locp, _mesa_glsl_parse_state *state,
* \sa _mesa_glsl_error
*/
extern void _mesa_glsl_warning(const YYLTYPE *locp,
- const _mesa_glsl_parse_state *state,
+ _mesa_glsl_parse_state *state,
const char *fmt, ...);
extern void _mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state,