Added get_size() func
authorskeezix <skeezix@flotsam-vm.(none)>
Sat, 6 Mar 2010 04:30:28 +0000 (23:30 -0500)
committerskeezix <skeezix@flotsam-vm.(none)>
Sat, 6 Mar 2010 04:30:28 +0000 (23:30 -0500)
include/pnd_container.h
lib/pnd_container.c

index acb850e..e16381d 100644 (file)
@@ -51,6 +51,7 @@ char *pnd_box_get_name ( pnd_box_handle box );
 void *pnd_box_get_head ( pnd_box_handle box );
 char *pnd_box_get_key ( void *node );
 void *pnd_box_get_next ( void *node );
+unsigned int pnd_box_get_size ( pnd_box_handle box );
 
 #ifdef __cplusplus
 } /* "C" */
index f1fdef6..bf07a20 100644 (file)
@@ -132,6 +132,9 @@ char *pnd_box_get_name ( pnd_box_handle box ) {
 
 void *pnd_box_get_head ( pnd_box_handle box ) {
   pnd_box_t *p = (pnd_box_t*) box;
+  if ( ! p ) {
+    return ( NULL ); // fubar!
+  }
   if ( ! p -> head ) {
     return ( NULL );
   }
@@ -151,3 +154,24 @@ char *pnd_box_get_key ( void *node ) {
   pnd_box_node_t *p = PAYLOAD2NODE(node);
   return ( p -> key );
 }
+
+unsigned int pnd_box_get_size ( pnd_box_handle box ) {
+  pnd_box_t *p = (pnd_box_t*) box;
+  pnd_box_node_t *n;
+  unsigned int count = 0;
+
+  if ( ! p ) {
+    return ( 0 );
+  }
+
+  n = p -> head;
+
+  while ( n ) {
+
+    count++;
+
+    n = n -> next;
+  } // while
+
+  return ( count );
+}