mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-25 01:30:30 +01:00
glsl/pp: Report correct error line for purify and tokeniser errors.
This commit is contained in:
parent
a6e663def4
commit
e9aa65d2b7
4 changed files with 21 additions and 2 deletions
|
|
@ -56,6 +56,7 @@ sl_pp_context_create(void)
|
|||
context->if_ptr = SL_PP_MAX_IF_NESTING;
|
||||
context->if_value = 1;
|
||||
memset(context->error_msg, 0, sizeof(context->error_msg));
|
||||
context->error_line = 1;
|
||||
context->line = 1;
|
||||
context->file = 0;
|
||||
|
||||
|
|
@ -79,6 +80,19 @@ sl_pp_context_error_message(const struct sl_pp_context *context)
|
|||
return context->error_msg;
|
||||
}
|
||||
|
||||
void
|
||||
sl_pp_context_error_position(const struct sl_pp_context *context,
|
||||
unsigned int *file,
|
||||
unsigned int *line)
|
||||
{
|
||||
if (file) {
|
||||
*file = 0;
|
||||
}
|
||||
if (line) {
|
||||
*line = context->error_line;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
sl_pp_context_add_predefined(struct sl_pp_context *context,
|
||||
const char *name,
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ struct sl_pp_context {
|
|||
unsigned int if_value;
|
||||
|
||||
char error_msg[SL_PP_MAX_ERROR_MSG];
|
||||
unsigned int error_line;
|
||||
|
||||
unsigned int line;
|
||||
unsigned int file;
|
||||
|
|
|
|||
|
|
@ -45,6 +45,11 @@ sl_pp_context_destroy(struct sl_pp_context *context);
|
|||
const char *
|
||||
sl_pp_context_error_message(const struct sl_pp_context *context);
|
||||
|
||||
void
|
||||
sl_pp_context_error_position(const struct sl_pp_context *context,
|
||||
unsigned int *file,
|
||||
unsigned int *line);
|
||||
|
||||
int
|
||||
sl_pp_context_add_extension(struct sl_pp_context *context,
|
||||
const char *name,
|
||||
|
|
|
|||
|
|
@ -39,13 +39,12 @@ static int
|
|||
_pure_getc(struct sl_pp_context *context)
|
||||
{
|
||||
char c;
|
||||
unsigned int current_line;
|
||||
|
||||
if (context->getc_buf_size) {
|
||||
return context->getc_buf[--context->getc_buf_size];
|
||||
}
|
||||
|
||||
if (sl_pp_purify_getc(&context->pure, &c, ¤t_line, context->error_msg, sizeof(context->error_msg)) == 0) {
|
||||
if (sl_pp_purify_getc(&context->pure, &c, &context->error_line, context->error_msg, sizeof(context->error_msg)) == 0) {
|
||||
return PURE_ERROR;
|
||||
}
|
||||
return c;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue