[augeas-devel] augeas: master - Pass symtab explicitly into pathx_symtab_remove_descendants

David Lutterkort lutter at fedoraproject.org
Tue Aug 11 01:45:38 UTC 2009


Gitweb:        http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=93aa81f70bcc2235ed8a5dc32a5d79baa1b4c4fd
Commit:        93aa81f70bcc2235ed8a5dc32a5d79baa1b4c4fd
Parent:        2b43c30d057a0483b039b4159e5be6e97dff0e16
Author:        David Lutterkort <lutter at redhat.com>
AuthorDate:    Mon Aug 10 18:16:16 2009 -0700
Committer:     David Lutterkort <lutter at redhat.com>
CommitterDate: Mon Aug 10 18:16:16 2009 -0700

Pass symtab explicitly into pathx_symtab_remove_descendants

---
 src/augeas.c   |    2 +-
 src/internal.h |    3 ++-
 src/pathx.c    |    7 +++++--
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/augeas.c b/src/augeas.c
index b440803..b38dbf7 100644
--- a/src/augeas.c
+++ b/src/augeas.c
@@ -573,7 +573,7 @@ int tree_rm(struct pathx *p) {
     for (i = 0, tree = pathx_first(p); tree != NULL; tree = pathx_next(p)) {
         if (TREE_HIDDEN(tree))
             continue;
-        pathx_symtab_remove_descendants(p, tree);
+        pathx_symtab_remove_descendants(pathx_get_symtab(p), tree);
         del[i] = tree;
         i += 1;
     }
diff --git a/src/internal.h b/src/internal.h
index 7f266b5..5a0c64c 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -412,12 +412,13 @@ int pathx_expand_tree(struct pathx *path, struct tree **tree);
 void free_pathx(struct pathx *path);
 
 int pathx_symtab_init(struct pathx_symtab **symtab);
+struct pathx_symtab *pathx_get_symtab(struct pathx *pathx);
 int pathx_symtab_define(struct pathx_symtab **symtab,
                         const char *name, struct pathx *px);
 int pathx_symtab_assign_tree(struct pathx_symtab **symtab, const char *name,
                              struct tree *tree);
 int pathx_symtab_undefine(struct pathx_symtab **symtab, const char *name);
-void pathx_symtab_remove_descendants(struct pathx *pathx,
+void pathx_symtab_remove_descendants(struct pathx_symtab *symtab,
                                      const struct tree *tree);
 void free_symtab(struct pathx_symtab *symtab);
 #endif
diff --git a/src/pathx.c b/src/pathx.c
index 32d4aad..83ef88e 100644
--- a/src/pathx.c
+++ b/src/pathx.c
@@ -2248,6 +2248,10 @@ int pathx_symtab_init(struct pathx_symtab **symtab) {
     return -1;
 }
 
+struct pathx_symtab *pathx_get_symtab(struct pathx *pathx) {
+    return pathx->state->symtab;
+}
+
 static int pathx_symtab_set(struct pathx_symtab **symtab,
                             const char *name, struct value *v) {
     int found = 0;
@@ -2345,9 +2349,8 @@ int pathx_symtab_assign_tree(struct pathx_symtab **symtab,
     return -1;
 }
 
-void pathx_symtab_remove_descendants(struct pathx *pathx,
+void pathx_symtab_remove_descendants(struct pathx_symtab *symtab,
                                      const struct tree *tree) {
-    struct pathx_symtab *symtab = pathx->state->symtab;
     list_for_each(tab, symtab) {
         if (tab->value->tag != T_NODESET)
             continue;




More information about the augeas-devel mailing list