Simplify list_clear(), allow NULL as free() function pointer.
This makes it redundant to create a null_free() or dummy_free() function that does nothing.
This commit is contained in:
parent
d33695435b
commit
1526d63403
|
@ -31,8 +31,6 @@ static int send_command_not_found(struct command_base* cbase, struct hub_user* u
|
||||||
static int send_command_syntax_error(struct command_base* cbase, struct hub_user* user);
|
static int send_command_syntax_error(struct command_base* cbase, struct hub_user* user);
|
||||||
static int send_command_missing_arguments(struct command_base* cbase, struct hub_user* user, struct hub_command* cmd);
|
static int send_command_missing_arguments(struct command_base* cbase, struct hub_user* user, struct hub_command* cmd);
|
||||||
|
|
||||||
static void null_free(void* ptr) { }
|
|
||||||
|
|
||||||
struct command_base
|
struct command_base
|
||||||
{
|
{
|
||||||
struct hub_info* hub;
|
struct hub_info* hub;
|
||||||
|
@ -424,7 +422,7 @@ static int command_whoip(struct command_base* cbase, struct hub_user* user, stru
|
||||||
ret = uman_get_user_by_addr(cbase->hub->users, users, arg->data.range);
|
ret = uman_get_user_by_addr(cbase->hub->users, users, arg->data.range);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
{
|
{
|
||||||
list_clear(users, &null_free);
|
list_clear(users, NULL);
|
||||||
list_destroy(users);
|
list_destroy(users);
|
||||||
return command_status(cbase, user, cmd, cbuf_create_const("No users found."));
|
return command_status(cbase, user, cmd, cbuf_create_const("No users found."));
|
||||||
}
|
}
|
||||||
|
@ -439,7 +437,7 @@ static int command_whoip(struct command_base* cbase, struct hub_user* user, stru
|
||||||
cbuf_append(buf, "\n");
|
cbuf_append(buf, "\n");
|
||||||
|
|
||||||
send_message(cbase, user, buf);
|
send_message(cbase, user, buf);
|
||||||
list_clear(users, &null_free);
|
list_clear(users, NULL);
|
||||||
list_destroy(users);
|
list_destroy(users);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,11 +109,6 @@ void net_dns_destroy()
|
||||||
g_dns = NULL;
|
g_dns = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dummy_free(void* ptr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void net_dns_process()
|
void net_dns_process()
|
||||||
{
|
{
|
||||||
struct net_dns_result* result;
|
struct net_dns_result* result;
|
||||||
|
@ -148,7 +143,7 @@ void net_dns_process()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
list_clear(g_dns->results, &dummy_free);
|
list_clear(g_dns->results, NULL);
|
||||||
uhub_mutex_unlock(&g_dns->mutex);
|
uhub_mutex_unlock(&g_dns->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,11 +40,16 @@ void list_destroy(struct linked_list* list)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void dummy_free(void* ptr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void list_clear(struct linked_list* list, void (*free_handle)(void* ptr))
|
void list_clear(struct linked_list* list, void (*free_handle)(void* ptr))
|
||||||
{
|
{
|
||||||
struct node* node = list->first;
|
struct node* node = list->first;
|
||||||
struct node* tmp = NULL;
|
struct node* tmp = NULL;
|
||||||
|
if (free_handle == NULL)
|
||||||
|
free_handle = &dummy_free;
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
tmp = node->next;
|
tmp = node->next;
|
||||||
|
|
|
@ -318,12 +318,10 @@ static struct rb_node* rb_it_set(struct rb_tree* tree, struct rb_node* n)
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void null_free(void* ptr) { }
|
|
||||||
|
|
||||||
struct rb_node* rb_tree_first(struct rb_tree* tree)
|
struct rb_node* rb_tree_first(struct rb_tree* tree)
|
||||||
{
|
{
|
||||||
struct rb_node* n = tree->root;
|
struct rb_node* n = tree->root;
|
||||||
list_clear(tree->iterator.stack, &null_free);
|
list_clear(tree->iterator.stack, NULL);
|
||||||
while (n->link[0])
|
while (n->link[0])
|
||||||
{
|
{
|
||||||
push(tree, n);
|
push(tree, n);
|
||||||
|
|
Loading…
Reference in New Issue