The param controls whether _mesa_destroy_debug_output should be called or not.
No functional changes; this will be used by the next commit.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5789>
driDestroyOptionCache(&intel->optionCache);
/* free the Mesa context */
- _mesa_free_context_data(&intel->ctx);
+ _mesa_free_context_data(&intel->ctx, true);
_math_matrix_dtr(&intel->ViewportMatrix);
driDestroyOptionCache(&brw->optionCache);
/* free the Mesa context */
- _mesa_free_context_data(&brw->ctx);
+ _mesa_free_context_data(&brw->ctx, true);
ralloc_free(brw);
driContextPriv->driverPrivate = NULL;
nouveau_object_del(&nctx->hw.chan);
nouveau_scratch_destroy(ctx);
- _mesa_free_context_data(ctx);
+ _mesa_free_context_data(ctx, true);
}
void
/* free atom list */
/* free the Mesa context data */
- _mesa_free_context_data(&radeon->glCtx);
+ _mesa_free_context_data(&radeon->glCtx, true);
/* free the option cache */
driDestroyOptionCache(&radeon->optionCache);
osmesa->gl_buffer = _mesa_create_framebuffer(osmesa->gl_visual);
if (!osmesa->gl_buffer) {
_mesa_destroy_visual( osmesa->gl_visual );
- _mesa_free_context_data(&osmesa->mesa);
+ _mesa_free_context_data(&osmesa->mesa, true);
free(osmesa);
return NULL;
}
!_tnl_CreateContext( ctx ) ||
!_swsetup_CreateContext( ctx )) {
_mesa_destroy_visual(osmesa->gl_visual);
- _mesa_free_context_data(ctx);
+ _mesa_free_context_data(ctx, true);
free(osmesa);
return NULL;
}
if (ctx->Version < version_major * 10 + version_minor) {
_mesa_destroy_visual(osmesa->gl_visual);
- _mesa_free_context_data(ctx);
+ _mesa_free_context_data(ctx, true);
free(osmesa);
return NULL;
}
_mesa_destroy_visual( osmesa->gl_visual );
_mesa_reference_framebuffer( &osmesa->gl_buffer, NULL );
- _mesa_free_context_data(&osmesa->mesa);
+ _mesa_free_context_data(&osmesa->mesa, true);
free( osmesa );
}
}
!_vbo_CreateContext( mesaCtx, false ) ||
!_tnl_CreateContext( mesaCtx ) ||
!_swsetup_CreateContext( mesaCtx )) {
- _mesa_free_context_data(&c->mesa);
+ _mesa_free_context_data(&c->mesa, true);
free(c);
return NULL;
}
_swrast_DestroyContext( mesaCtx );
_tnl_DestroyContext( mesaCtx );
_vbo_DestroyContext( mesaCtx );
- _mesa_free_context_data(mesaCtx);
+ _mesa_free_context_data(mesaCtx, true);
free( c );
}
* \sa _mesa_initialize_context() and init_attrib_groups().
*/
void
-_mesa_free_context_data(struct gl_context *ctx)
+_mesa_free_context_data(struct gl_context *ctx, bool destroy_debug_output)
{
if (!_mesa_get_current_context()){
/* No current context, but we may need one in order to delete
/* needs to be after freeing shared state */
_mesa_free_display_list_data(ctx);
- _mesa_destroy_debug_output(ctx);
+ if (destroy_debug_output)
+ _mesa_destroy_debug_output(ctx);
free((void *)ctx->Extensions.String);
_mesa_destroy_context( struct gl_context *ctx )
{
if (ctx) {
- _mesa_free_context_data(ctx);
+ _mesa_free_context_data(ctx, true);
free( (void *) ctx );
}
}
const struct dd_function_table *driverFunctions);
extern void
-_mesa_free_context_data(struct gl_context *ctx);
+_mesa_free_context_data(struct gl_context *ctx, bool destroy_debug_output);
extern void
_mesa_destroy_context( struct gl_context *ctx );
st_destroy_program_variants(st);
- _mesa_free_context_data(ctx);
+ _mesa_free_context_data(ctx, true);
/* This will free the st_context too, so 'st' must not be accessed
* afterwards. */