projects
/
project
/
procd.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
480c24c
)
add blobmsg_list_move
author
Felix Fietkau
<nbd@openwrt.org>
Sun, 24 Jun 2012 16:38:54 +0000
(18:38 +0200)
committer
Felix Fietkau
<nbd@openwrt.org>
Sun, 24 Jun 2012 16:38:54 +0000
(18:38 +0200)
utils.c
patch
|
blob
|
history
utils.h
patch
|
blob
|
history
diff --git
a/utils.c
b/utils.c
index
cf31f87
..
88ed8c1
100644
(file)
--- a/
utils.c
+++ b/
utils.c
@@
-43,6
+43,20
@@
blobmsg_list_fill(struct blobmsg_list *list, void *data, int len)
}
void
}
void
+blobmsg_list_move(struct blobmsg_list *list, struct blobmsg_list *src)
+{
+ struct blobmsg_list_node *node, *tmp;
+ void *ptr;
+
+ avl_remove_all_elements(&src->avl, node, avl, tmp) {
+ if (!avl_insert(&list->avl, &node->avl)) {
+ ptr = ((char *) node - list->node_offset);
+ free(ptr);
+ }
+ }
+}
+
+void
blobmsg_list_free(struct blobmsg_list *list)
{
struct blobmsg_list_node *node, *tmp;
blobmsg_list_free(struct blobmsg_list *list)
{
struct blobmsg_list_node *node, *tmp;
diff --git
a/utils.h
b/utils.h
index
77de1f0
..
e89f2f1
100644
(file)
--- a/
utils.h
+++ b/
utils.h
@@
-26,5
+26,6
@@
void __blobmsg_list_init(struct blobmsg_list *list, int offset, int len);
int blobmsg_list_fill(struct blobmsg_list *list, void *data, int len);
void blobmsg_list_free(struct blobmsg_list *list);
bool blobmsg_list_equal(struct blobmsg_list *l1, struct blobmsg_list *l2);
int blobmsg_list_fill(struct blobmsg_list *list, void *data, int len);
void blobmsg_list_free(struct blobmsg_list *list);
bool blobmsg_list_equal(struct blobmsg_list *l1, struct blobmsg_list *l2);
+void blobmsg_list_move(struct blobmsg_list *list, struct blobmsg_list *src);
#endif
#endif