From 4018cf4fb1028ad95311d903cb77773be57c1235 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Thu, 12 Feb 2009 02:18:24 -0500 Subject: [PATCH] Fixed error line numbers when assembler gets errors from bytecode validation. --- mojoshader_assembler.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mojoshader_assembler.c b/mojoshader_assembler.c index d60669d4..c4fee399 100644 --- a/mojoshader_assembler.c +++ b/mojoshader_assembler.c @@ -1875,6 +1875,8 @@ const MOJOSHADER_parseData *MOJOSHADER_assemble(const char *source, if (error->error_position >= 0) { assert(retval != &MOJOSHADER_out_of_mem_data); + assert((error->error_position % sizeof (uint32)) == 0); + const int pos = error->error_position / sizeof (uint32); if (pos >= ctx->output_len) error->error_position = -1; // oh well. @@ -1884,11 +1886,8 @@ const MOJOSHADER_parseData *MOJOSHADER_assemble(const char *source, Free(ctx, (void *) error->filename); char *fname = NULL; if (srcpos->filename != NULL) - { fname = StrDup(ctx, srcpos->filename); - if (fname != NULL) - error->error_position = srcpos->line; - } // if + error->error_position = srcpos->line; error->filename = fname; // may be NULL, that's okay. } // else } // if