чување 0cf2078d007de3d470c7d2e74944d1d166dc885d
родитељ 3dec79c498196ee05fb9b4db764fd543fc80f2a2
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Sun, 17 Sep 2023 23:07:12 +0200
ftree.c: Remove print_tabs; change NODE_ALLOC_DELTA to 10; free root in
cleanup; more explicit initialization in alloc_node
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 1, додавања: 7(+), брисања: 12(-)
diff --git a/ftree.c b/ftree.c
@@ -16,7 +16,7 @@
#include "version.h"
#define BUFSIZE 4096
-#define NODE_ALLOC_DELTA 100
+#define NODE_ALLOC_DELTA 10
struct Node {
int level;
@@ -40,7 +40,6 @@ void free_node(struct Node** root);
void insert_node(struct Node** root, const int level, const char* label);
void print_indent(void);
void print_node(const struct Node* node);
-void print_tabs(const int level);
void set_node(struct Node* node, const int level, const char* label);
int string_to_symbol_set(const char* s);
void usage(void);
@@ -81,8 +80,11 @@ alloc_node(void)
exit(error(1, "Cannot alloc node"));
}
- newnode->children_count = 0;
+ newnode->level = 0;
+ newnode->label = NULL;
newnode->parent = NULL;
+ newnode->children_count = 0;
+ newnode->last_child = NULL;
newnode->next = NULL;
return newnode;
@@ -92,6 +94,7 @@ void
cleanup(void)
{
free_node(&root);
+ free(root);
free(indent);
}
@@ -237,13 +240,6 @@ print_node(const struct Node* node)
}
void
-print_tabs(const int level)
-{
- for (int i = 0; i < level; i++)
- printf(" ");
-}
-
-void
set_node(struct Node* node, const int level, const char* label)
{
if (!node->label)
@@ -319,8 +315,7 @@ main(int argc, char** argv)
usage();
exit(0);
case 's':
- if ((symbol_set = string_to_symbol_set(optarg))
- == -1)
+ if ((symbol_set = string_to_symbol_set(optarg)) == -1)
exit(error(1, "Invalid symbol set: '%s'",
optarg));
break;