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
	
	Block a user