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.

Reply via email to