summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/plist/plist.h8
-rw-r--r--src/plist.c9
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) {