glsl: Consistently use length-based ralloc string functions for info_log.
Commit b823b99ec0
switched from using
functions such as ralloc_asprintf and ralloc_strcat to
ralloc_asprintf_rewrite_tail. This change maintains the string's
length as a aparamter that is updated by the ralloc functions (rather
than recomputing it with strlen over and over).
However, the change failed to updated two locations (glcpp_error and
glcpp_warning), with the result that the string's length wasn't
updated by these calls. Then, subsequent calls to other
ralloc_asprintf_rewrite_tail would overwrite the text appended by
glcpp_error.
This commit fixes the two missing updates, and restores line numbers
to the output of glcpp error messages, (as noticed by a glcpp unit
test case that has been failing since the above-mentioned commit).
Signed-off-by: Carl Worth <cworth@cworth.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -33,15 +33,20 @@ glcpp_error (YYLTYPE *locp, glcpp_parser_t *parser, const char *fmt, ...)
|
||||
va_list ap;
|
||||
|
||||
parser->error = 1;
|
||||
ralloc_asprintf_append(&parser->info_log, "%u:%u(%u): "
|
||||
"preprocessor error: ",
|
||||
locp->source,
|
||||
locp->first_line,
|
||||
locp->first_column);
|
||||
ralloc_asprintf_rewrite_tail(&parser->info_log,
|
||||
&parser->info_log_length,
|
||||
"%u:%u(%u): "
|
||||
"preprocessor error: ",
|
||||
locp->source,
|
||||
locp->first_line,
|
||||
locp->first_column);
|
||||
va_start(ap, fmt);
|
||||
ralloc_vasprintf_append(&parser->info_log, fmt, ap);
|
||||
ralloc_vasprintf_rewrite_tail(&parser->info_log,
|
||||
&parser->info_log_length,
|
||||
fmt, ap);
|
||||
va_end(ap);
|
||||
ralloc_strcat(&parser->info_log, "\n");
|
||||
ralloc_asprintf_rewrite_tail(&parser->info_log,
|
||||
&parser->info_log_length, "\n");
|
||||
}
|
||||
|
||||
void
|
||||
@@ -49,15 +54,20 @@ glcpp_warning (YYLTYPE *locp, glcpp_parser_t *parser, const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
ralloc_asprintf_append(&parser->info_log, "%u:%u(%u): "
|
||||
"preprocessor warning: ",
|
||||
locp->source,
|
||||
locp->first_line,
|
||||
locp->first_column);
|
||||
ralloc_asprintf_rewrite_tail(&parser->info_log,
|
||||
&parser->info_log_length,
|
||||
"%u:%u(%u): "
|
||||
"preprocessor warning: ",
|
||||
locp->source,
|
||||
locp->first_line,
|
||||
locp->first_column);
|
||||
va_start(ap, fmt);
|
||||
ralloc_vasprintf_append(&parser->info_log, fmt, ap);
|
||||
ralloc_vasprintf_rewrite_tail(&parser->info_log,
|
||||
&parser->info_log_length,
|
||||
fmt, ap);
|
||||
va_end(ap);
|
||||
ralloc_strcat(&parser->info_log, "\n");
|
||||
ralloc_asprintf_rewrite_tail(&parser->info_log,
|
||||
&parser->info_log_length, "\n");
|
||||
}
|
||||
|
||||
/* Searches backwards for '^ *#' from a given starting point. */
|
||||
|
Reference in New Issue
Block a user