diff options
author | Francesco Romani <fromani@gmail.com> | 2014-07-06 14:07:11 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2023-04-12 19:47:42 +0300 |
commit | 6f8d15a8ae678db1a4a3cf763b649dd88af54884 (patch) | |
tree | 09845ea7c55722edf29784da68cbe2a78dec950d | |
parent | 67422b7b3c960981f14d0cd3df56a200f772b454 (diff) | |
download | orc-6f8d15a8ae678db1a4a3cf763b649dd88af54884.tar.gz |
parser: extract initialization function
Part-of: <https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/30>
-rw-r--r-- | orc/orcparse.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/orc/orcparse.c b/orc/orcparse.c index 3276e7b..d44f09f 100644 --- a/orc/orcparse.c +++ b/orc/orcparse.c @@ -47,6 +47,7 @@ static OrcParseError * orc_parse_error_new (const char *source, int line_number, static void orc_parse_error_free (OrcParseError *error); static void orc_parse_splat_error (OrcParseError **errors, int n_errors, char **log); +static void orc_parse_init (OrcParser *parser, const char *code, int enable_errors); static void orc_parse_get_line (OrcParser *parser); static void orc_parse_sanity_check (OrcParser *parser, OrcProgram *program); @@ -54,6 +55,7 @@ static OrcStaticOpcode * orc_parse_find_opcode (OrcParser *parser, const char *o static int opcode_n_args (OrcStaticOpcode *opcode); static int opcode_arg_size (OrcStaticOpcode *opcode, int arg); + const char * orc_parse_get_init_function (OrcProgram *program) { @@ -93,15 +95,9 @@ orc_parse_code (const char *code, OrcProgram ***programs, int *n_programs, { OrcParser _parser; OrcParser *parser = &_parser; + int enable_errors = (errors && n_errors); - memset (parser, 0, sizeof(*parser)); - - parser->code = code; - parser->code_length = strlen (code); - parser->line_number = 0; - parser->p = code; - parser->opcode_set = orc_opcode_set_get ("sys"); - parser->enable_errors = (errors && n_errors); + orc_parse_init (parser, code, enable_errors); while (parser->p[0] != 0) { char *p; @@ -443,6 +439,19 @@ orc_parse_code (const char *code, OrcProgram ***programs, int *n_programs, } static void +orc_parse_init (OrcParser *parser, const char *code, int enable_errors) +{ + memset (parser, 0, sizeof(*parser)); + + parser->code = code; + parser->code_length = strlen (code); + parser->line_number = 0; + parser->p = code; + parser->opcode_set = orc_opcode_set_get ("sys"); + parser->enable_errors = enable_errors; +} + +static void orc_parse_splat_error (OrcParseError **errors, int n_errors, char **log) { int i; |