diff options
-rw-r--r-- | include/plist/plist.h | 8 | ||||
-rw-r--r-- | src/plist.c | 9 |
2 files changed, 17 insertions, 0 deletions
diff --git a/include/plist/plist.h b/include/plist/plist.h index 55ae9e7..e12d6fa 100644 --- a/include/plist/plist.h +++ b/include/plist/plist.h @@ -251,6 +251,14 @@ extern "C" { ********************************************/ /** + * Get size of a #PLIST_DICT node. + * + * @param node the node of type #PLIST_DICT + * @return size of the #PLIST_DICT node + */ + PLIST_API uint32_t plist_dict_get_size(plist_t node); + +/** * Create iterator of a #PLIST_DICT node. * The allocated iterator shoult be freed with tandard free function * diff --git a/src/plist.c b/src/plist.c index df98a7a..98ca34f 100644 --- a/src/plist.c +++ b/src/plist.c @@ -267,6 +267,15 @@ void plist_array_remove_item(plist_t node, uint32_t n) return; } +uint32_t plist_dict_get_size(plist_t node) +{ + uint32_t ret = 0; + if (node && PLIST_DICT == plist_get_node_type(node)) { + ret = g_node_n_children(node); + } + return ret; +} + void plist_dict_new_iter(plist_t node, plist_dict_iter *iter) { if (iter && *iter == NULL) { |