projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'mesa_7_7_branch'
[mesa.git]
/
src
/
glsl
/
pp
/
sl_pp_context.c
diff --git
a/src/glsl/pp/sl_pp_context.c
b/src/glsl/pp/sl_pp_context.c
index 2ce50790313ca34e332920d17327f30ee859dfa3..74a9bdddfdc13f44e9089f952aa22a0ca7f0391e 100644
(file)
--- a/
src/glsl/pp/sl_pp_context.c
+++ b/
src/glsl/pp/sl_pp_context.c
@@
-32,7
+32,8
@@
struct sl_pp_context *
struct sl_pp_context *
-sl_pp_context_create(void)
+sl_pp_context_create(const char *input,
+ const struct sl_pp_purify_options *options)
{
struct sl_pp_context *context;
{
struct sl_pp_context *context;
@@
-46,12
+47,18
@@
sl_pp_context_create(void)
return NULL;
}
return NULL;
}
- context->getc_buf = malloc(64 * sizeof(char));
+ context->getc_buf_capacity = 64;
+ context->getc_buf = malloc(context->getc_buf_capacity * sizeof(char));
if (!context->getc_buf) {
sl_pp_context_destroy(context);
return NULL;
}
if (!context->getc_buf) {
sl_pp_context_destroy(context);
return NULL;
}
+ if (sl_pp_token_buffer_init(&context->tokens, context)) {
+ sl_pp_context_destroy(context);
+ return NULL;
+ }
+
context->macro_tail = &context->macro;
context->if_ptr = SL_PP_MAX_IF_NESTING;
context->if_value = 1;
context->macro_tail = &context->macro;
context->if_ptr = SL_PP_MAX_IF_NESTING;
context->if_value = 1;
@@
-60,6
+67,10
@@
sl_pp_context_create(void)
context->line = 1;
context->file = 0;
context->line = 1;
context->file = 0;
+ sl_pp_purify_state_init(&context->pure, input, options);
+
+ memset(&context->process_state, 0, sizeof(context->process_state));
+
return context;
}
return context;
}
@@
-70,6
+81,8
@@
sl_pp_context_destroy(struct sl_pp_context *context)
free(context->cstr_pool);
sl_pp_macro_free(context->macro);
free(context->getc_buf);
free(context->cstr_pool);
sl_pp_macro_free(context->macro);
free(context->getc_buf);
+ sl_pp_token_buffer_destroy(&context->tokens);
+ free(context->process_state.out);
free(context);
}
}
free(context);
}
}