summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancesco Romani <fromani@gmail.com>2014-07-05 18:13:02 +0200
committerSebastian Dröge <sebastian@centricular.com>2023-04-12 19:31:37 +0300
commitd22fb602e864a15079c4f0bf93a0143ce9617aa9 (patch)
tree38bc7334039265276dab87477cc52a4d82c17d3e
parentfed9b6f27f1c27babcddfef57184deef68fa6132 (diff)
downloadorc-d22fb602e864a15079c4f0bf93a0143ce9617aa9.tar.gz
parser: cleanup: use OrcVector to store programs
Part-of: <https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/30>
-rw-r--r--orc/orcparse.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/orc/orcparse.c b/orc/orcparse.c
index 84615dc..b9f31f6 100644
--- a/orc/orcparse.c
+++ b/orc/orcparse.c
@@ -32,9 +32,7 @@ struct _OrcParser {
OrcProgram *program;
OrcProgram *error_program;
- OrcProgram **programs;
- int n_programs;
- int n_programs_alloc;
+ OrcVector programs;
char *log;
int log_size;
@@ -135,13 +133,8 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
}
parser->program = orc_program_new ();
orc_program_set_name (parser->program, token[1]);
- if (parser->n_programs == parser->n_programs_alloc) {
- parser->n_programs_alloc += 32;
- parser->programs = realloc (parser->programs,
- sizeof(OrcProgram *)*parser->n_programs_alloc);
- }
- parser->programs[parser->n_programs] = parser->program;
- parser->n_programs++;
+
+ orc_vector_append (&parser->programs, parser->program);
parser->creg_index = 1;
}
} else if (strcmp (token[0], ".backup") == 0) {
@@ -151,7 +144,6 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
} else {
orc_program_set_backup_name (parser->program, token[1]);
}
-
} else if (strcmp (token[0], ".init") == 0) {
free (init_function);
init_function = NULL;
@@ -413,13 +405,15 @@ orc_parse_full (const char *code, OrcProgram ***programs, char **log)
} else {
free (parser->log);
}
- if (parser->programs && parser->programs[0]) {
- parser->programs[0]->init_function = init_function;
+
+ if (orc_vector_has_data (&parser->programs)) {
+ OrcProgram *prog = ORC_VECTOR_GET_ITEM (&parser->programs, 0, OrcProgram *);
+ prog->init_function = init_function;
} else {
free (init_function);
}
- *programs = parser->programs;
- return parser->n_programs;
+ *programs = ORC_VECTOR_AS_TYPE (&parser->programs, OrcProgram);
+ return orc_vector_length (&parser->programs);
}
static OrcStaticOpcode *