gallium/hud: do not use free() for the free_query_data hook

That confuses Gallium's memory debugging code where CALLOC/MALLOC
must be matched with FREE, not free().

Reviewed-by: Marek Olšák <maraeo@gmail.com>
This commit is contained in:
Brian Paul
2013-06-24 10:43:16 -06:00
parent e5bf19ac1c
commit e3cbb18321
3 changed files with 23 additions and 3 deletions

View File

@@ -116,6 +116,12 @@ query_cpu_load(struct hud_graph *gr)
}
}
static void
free_query_data(void *p)
{
FREE(p);
}
void
hud_cpu_graph_install(struct hud_pane *pane, unsigned cpu_index)
{
@@ -144,7 +150,11 @@ hud_cpu_graph_install(struct hud_pane *pane, unsigned cpu_index)
}
gr->query_new_value = query_cpu_load;
gr->free_query_data = free;
/* Don't use free() as our callback as that messes up Gallium's
* memory debugger. Use simple free_query_data() wrapper.
*/
gr->free_query_data = free_query_data;
info = gr->query_data;
info->cpu_index = cpu_index;

View File

@@ -60,6 +60,12 @@ query_fps(struct hud_graph *gr)
}
}
static void
free_query_data(void *p)
{
FREE(p);
}
void
hud_fps_graph_install(struct hud_pane *pane)
{
@@ -76,7 +82,11 @@ hud_fps_graph_install(struct hud_pane *pane)
}
gr->query_new_value = query_fps;
gr->free_query_data = free;
/* Don't use free() as our callback as that messes up Gallium's
* memory debugger. Use simple free_query_data() wrapper.
*/
gr->free_query_data = free_query_data;
hud_pane_add_graph(pane, gr);
}

View File

@@ -42,7 +42,7 @@ struct hud_graph {
char name[128];
void *query_data;
void (*query_new_value)(struct hud_graph *gr);
void (*free_query_data)(void *ptr);
void (*free_query_data)(void *ptr); /**< do not use ordinary free() */
/* mutable variables */
unsigned num_vertices;