This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch edje-vector-intergration
in repository efl.
View the commit online.
commit fd800e7e49a95bd7166e37e0f7fea55b080d66ff
Author: [email protected] <[email protected]>
AuthorDate: Tue Apr 28 11:53:42 2026 -0600
edje: add vector-tree parser context state (Task 2.2)
This commit lands the five static parser-context variables that subsequent
EDC handlers (Tasks 2.3-2.8) will populate: current_vg_tree, current_vg_node,
current_vg_node_stack, toplevel_vg_trees, and all_vg_trees. Grouping them
in this no-op substrate allows each handler addition to review cleanly in
isolation without interleaving globals across different review threads.
Also introduces _edje_cc_vg_cleanup(), invoked from Task 2.9's end-of-compile
serializer hook to free the parser-side array and hash, resetting statics
for re-entrancy. Marked unused until then.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
---
src/bin/edje/edje_cc_handlers.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 5f2657d598..aa74f88e86 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -174,6 +174,33 @@ static int *anonymous_delete = NULL;
static Edje_Part_Description_Anchors *current_anchors = NULL;
static Eina_Bool has_relatives = EINA_FALSE;
+/* Vector tree authoring context — populated by Phase 2 handlers. */
+static Edje_Vg_Tree *current_vg_tree = NULL;
+static Edje_Vg_Node *current_vg_node = NULL;
+static Eina_Array *current_vg_node_stack = NULL;
+static Eina_Hash *toplevel_vg_trees = NULL;
+static Eina_List *all_vg_trees = NULL;
+
+/* Used after Task 2.9. */
+static void __attribute__((unused))
+_edje_cc_vg_cleanup(void)
+{
+ /* Trees themselves are owned by Phase 2.9's data_write_vectors_trees() at
+ this point — they've been moved into edje_file->vector_dir->trees[] by
+ shallow-copy with src->root nullified. The Eina_List wrappers in
+ all_vg_trees were freed by the same function. So here we only release
+ our parser-side scaffolding: the toplevel-name hash (borrowed pointers,
+ NULL data-free), the node stack (also borrowed), and reset the static
+ pointers. */
+ if (current_vg_node_stack) eina_array_free(current_vg_node_stack);
+ if (toplevel_vg_trees) eina_hash_free(toplevel_vg_trees);
+ current_vg_tree = NULL;
+ current_vg_node = NULL;
+ current_vg_node_stack = NULL;
+ toplevel_vg_trees = NULL;
+ all_vg_trees = NULL;
+}
+
Eina_List *po_files;
static Eina_Hash *desc_hash = NULL;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.