aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gibson <dgibson@sneetch.(none)>2005-10-21 17:26:45 +1000
committerDavid Gibson <dgibson@sneetch.(none)>2005-10-21 17:26:45 +1000
commit740a19a81905ff04710f4a154c0c9277e72d7c74 (patch)
tree6066d95d1720623d4d0ec7bd84c2c99dbfa46bd9
parentcba839c728b95e97d05b228bfe12ffecfae39734 (diff)
downloaddtc-740a19a81905ff04710f4a154c0c9277e72d7c74.zip
dtc-740a19a81905ff04710f4a154c0c9277e72d7c74.tar.gz
dtc-740a19a81905ff04710f4a154c0c9277e72d7c74.tar.bz2
Alter add_property() and add_child() functiosn to add to the end of their
respective linked lists. This means we no longer reverse the order or properties and subnodes when in blob or fs input modes.
-rw-r--r--livetree.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/livetree.c b/livetree.c
index 5b07680..6a1f4f9 100644
--- a/livetree.c
+++ b/livetree.c
@@ -84,12 +84,28 @@ struct node *chain_node(struct node *first, struct node *list)
void add_property(struct node *node, struct property *prop)
{
- node->proplist = chain_property(prop, node->proplist);
+ struct property **p;
+
+ prop->next = NULL;
+
+ p = &node->proplist;
+ while (*p)
+ p = &((*p)->next);
+
+ *p = prop;
}
void add_child(struct node *parent, struct node *child)
{
- parent->children = chain_node(child, parent->children);
+ struct node **p;
+
+ child->next_sibling = NULL;
+
+ p = &parent->children;
+ while (*p)
+ p = &((*p)->next_sibling);
+
+ *p = child;
}