mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	fix some small memory leaks
This commit is contained in:
		
							parent
							
								
									4faa28fd96
								
							
						
					
					
						commit
						61ad5ee518
					
				
					 4 changed files with 21 additions and 5 deletions
				
			
		| 
						 | 
					@ -249,9 +249,18 @@ static void clear_mem(struct node_data *data, struct mem *m)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void clear_link(struct node_data *data, struct link *link)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						link->node_id = SPA_ID_INVALID;
 | 
				
			||||||
 | 
						link->target.activation = NULL;
 | 
				
			||||||
 | 
						close(link->signalfd);
 | 
				
			||||||
 | 
						spa_list_remove(&link->target.link);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void clean_transport(struct node_data *data)
 | 
					static void clean_transport(struct node_data *data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct mem *m;
 | 
						struct mem *m;
 | 
				
			||||||
 | 
						struct link *l;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (data->rtsocket_source == NULL)
 | 
						if (data->rtsocket_source == NULL)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
| 
						 | 
					@ -262,6 +271,10 @@ static void clean_transport(struct node_data *data)
 | 
				
			||||||
		clear_mem(data, m);
 | 
							clear_mem(data, m);
 | 
				
			||||||
	pw_array_clear(&data->mems);
 | 
						pw_array_clear(&data->mems);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pw_array_for_each(l, &data->links)
 | 
				
			||||||
 | 
							clear_link(data, l);
 | 
				
			||||||
 | 
						pw_array_clear(&data->links);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	close(data->rtwritefd);
 | 
						close(data->rtwritefd);
 | 
				
			||||||
	data->remote_id = SPA_ID_INVALID;
 | 
						data->remote_id = SPA_ID_INVALID;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1030,10 +1043,7 @@ client_node_set_activation(void *object,
 | 
				
			||||||
			res = -EINVAL;
 | 
								res = -EINVAL;
 | 
				
			||||||
			goto exit;
 | 
								goto exit;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		link->node_id = SPA_ID_INVALID;
 | 
							clear_link(data, link);
 | 
				
			||||||
		link->target.activation = NULL;
 | 
					 | 
				
			||||||
		close(link->signalfd);
 | 
					 | 
				
			||||||
		spa_list_remove(&link->target.link);
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      exit:
 | 
					      exit:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -310,7 +310,8 @@ void pw_module_destroy(struct pw_module *module)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_properties_free(module->properties);
 | 
						pw_properties_free(module->properties);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dlclose(impl->hnd);
 | 
						if (dlclose(impl->hnd) != 0)
 | 
				
			||||||
 | 
							pw_log_warn("dlclose failed: %s", dlerror());
 | 
				
			||||||
	free(impl);
 | 
						free(impl);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1108,6 +1108,8 @@ void pw_node_destroy(struct pw_node *node)
 | 
				
			||||||
	pw_log_debug("node %p: free", node);
 | 
						pw_log_debug("node %p: free", node);
 | 
				
			||||||
	pw_node_emit_free(node);
 | 
						pw_node_emit_free(node);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pw_memblock_free(node->activation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_work_queue_destroy(impl->work);
 | 
						pw_work_queue_destroy(impl->work);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_map_clear(&node->input_port_map);
 | 
						pw_map_clear(&node->input_port_map);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -296,6 +296,9 @@ static void configure_debug(struct support *support, const char *str)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (n_tokens > 1)
 | 
						if (n_tokens > 1)
 | 
				
			||||||
		support->categories = pw_split_strv(level[1], ",", INT_MAX, &n_tokens);
 | 
							support->categories = pw_split_strv(level[1], ",", INT_MAX, &n_tokens);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (level)
 | 
				
			||||||
 | 
							pw_free_strv(level);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Get a support interface
 | 
					/** Get a support interface
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue