change array_init to array_new, working as a constructor

This commit is contained in:
2023-05-26 20:01:27 +02:00
parent c66eb85cc6
commit 92a5dc5cf1
2 changed files with 17 additions and 13 deletions

26
util.c
View File

@ -9,16 +9,18 @@ void wm_treenode_init(TreeNode *node, NodeType type, TreeNode *parent)
node->parent = parent; node->parent = parent;
node->type = type; node->type = type;
node->children = (NodeArray) {0}; node->children = (NodeArray) {0};
wm_nodearray_init(&node->children); wm_nodearray_new();
} }
void wm_nodearray_init(NodeArray *arr) NodeArray wm_nodearray_new()
{ {
assert(arr); NodeArray arr;
arr->capacity = 10; arr.capacity = 10;
arr->nodes = calloc(arr->capacity, sizeof(TreeNode)); arr.nodes = calloc(arr.capacity, sizeof(TreeNode));
arr->size = 0; arr.size = 0;
return arr;
} }
void wm_nodearray_push(NodeArray *arr, TreeNode node) void wm_nodearray_push(NodeArray *arr, TreeNode node)
@ -89,13 +91,15 @@ void wm_nodearray_free(NodeArray *arr)
free(arr->nodes); free(arr->nodes);
} }
void wm_clientarray_init(ClientArray *arr) ClientArray wm_clientarray_new()
{ {
assert(arr); ClientArray arr;
arr->capacity = 10; arr.capacity = 10;
arr->clients = calloc(arr->capacity, sizeof(TreeNode)); arr.clients = calloc(arr.capacity, sizeof(TreeNode));
arr->size = 0; arr.size = 0;
return arr;
} }
void wm_clientarray_push(ClientArray *arr, Client node) void wm_clientarray_push(ClientArray *arr, Client node)

4
util.h
View File

@ -51,13 +51,13 @@ struct TreeNode {
void wm_treenode_init(TreeNode *node, NodeType type, TreeNode *parent); void wm_treenode_init(TreeNode *node, NodeType type, TreeNode *parent);
void wm_nodearray_init(NodeArray *arr); NodeArray wm_nodearray_new();
void wm_nodearray_push(NodeArray *arr, TreeNode node); void wm_nodearray_push(NodeArray *arr, TreeNode node);
bool wm_nodearray_pop(NodeArray *arr, TreeNode *ret); bool wm_nodearray_pop(NodeArray *arr, TreeNode *ret);
bool wm_nodearray_remove(NodeArray *arr, size_t index); bool wm_nodearray_remove(NodeArray *arr, size_t index);
void wm_nodearray_free(NodeArray *arr); void wm_nodearray_free(NodeArray *arr);
void wm_clientarray_init(ClientArray *arr); ClientArray wm_clientarray_new();
void wm_clientarray_push(ClientArray *arr, Client node); void wm_clientarray_push(ClientArray *arr, Client node);
bool wm_clientarray_pop(ClientArray *arr, Client *ret); bool wm_clientarray_pop(ClientArray *arr, Client *ret);
bool wm_clientarray_remove(ClientArray *arr, size_t index); bool wm_clientarray_remove(ClientArray *arr, size_t index);