- for splay_each(node_t, n, mesh->nodes) {
- if(i < nmemb)
- nodes[i] = (meshlink_node_t *)n;
- i++;
+ *nmemb = mesh->nodes->count;
+ result = realloc(nodes, *nmemb * sizeof *nodes);
+
+ if(result) {
+ for splay_each(node_t, n, mesh->nodes)
+ *p++ = (meshlink_node_t *)n;
+ } else {
+ *nmemb = 0;
+ free(nodes);
+ meshlink_errno = MESHLINK_ENOMEM;