Browse Source

Use yy_scan_string and stop caring about shader->SourceLen.

We had to call strlen on the preprocessed source, which seemed a bit
pointless; also, we updated shader->SourceLen but not shader->Source,
which was even more confusing.  Just leave both untouched.
tags/mesa-7.9-rc1
Kenneth Graunke 15 years ago
parent
commit
4a2bbdacfc
4 changed files with 7 additions and 9 deletions
  1. 1
    2
      glcpp/pp.c
  2. 2
    3
      glsl_lexer.lpp
  3. 2
    2
      glsl_parser_extras.h
  4. 2
    2
      main.cpp

+ 1
- 2
glcpp/pp.c View File

@@ -57,7 +57,7 @@ glcpp_warning (YYLTYPE *locp, glcpp_parser_t *parser, const char *fmt, ...)
}

extern int
preprocess(void *talloc_ctx, const char **shader, size_t *shader_len)
preprocess(void *talloc_ctx, const char **shader)
{
int errors;
glcpp_parser_t *parser = glcpp_parser_create ();
@@ -69,7 +69,6 @@ preprocess(void *talloc_ctx, const char **shader, size_t *shader_len)

talloc_steal(talloc_ctx, parser->output);
*shader = parser->output;
*shader_len = strlen(parser->output);

errors = parser->error;
glcpp_parser_destroy (parser);

+ 2
- 3
glsl_lexer.lpp View File

@@ -330,11 +330,10 @@ precision return PRECISION;
%%

void
_mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state,
const char *string, size_t len)
_mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string)
{
yylex_init_extra(state, & state->scanner);
yy_scan_bytes(string, len, state->scanner);
yy_scan_string(string, state->scanner);
}

void

+ 2
- 2
glsl_parser_extras.h View File

@@ -102,11 +102,11 @@ extern void _mesa_glsl_warning(const YYLTYPE *locp,
const char *fmt, ...);

extern "C" {
extern int preprocess(void *ctx, const char **shader, size_t *shader_len);
extern int preprocess(void *ctx, const char **shader);
}

extern void _mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state,
const char *string, size_t len);
const char *string);

extern void _mesa_glsl_lexer_dtor(struct _mesa_glsl_parse_state *state);


+ 2
- 2
main.cpp View File

@@ -128,10 +128,10 @@ compile_shader(struct glsl_shader *shader)
* should probably be the parser context, but there isn't one yet.
*/
const char *source = shader->Source;
state.error = preprocess(shader, &source, &shader->SourceLen);
state.error = preprocess(shader, &source);

if (!state.error) {
_mesa_glsl_lexer_ctor(& state, source, shader->SourceLen);
_mesa_glsl_lexer_ctor(& state, source);
_mesa_glsl_parse(& state);
_mesa_glsl_lexer_dtor(& state);
}

Loading…
Cancel
Save