--- Mesa-6.5/src/mesa/drivers/dri/unichrome/via_context.c.orig 2006-02-07 01:40:31.000000000 +0100 +++ Mesa-6.5/src/mesa/drivers/dri/unichrome/via_context.c 2006-07-01 14:17:48.000000000 +0200 @@ -549,6 +550,7 @@ vmesa->shareCtx = shareCtx; if (!vmesa->glCtx) { + driDestroyOptionInfo(&viaScreen->optionCache); FREE(vmesa); return GL_FALSE; } @@ -627,6 +629,7 @@ if (!AllocateDmaBuffer(vmesa)) { fprintf(stderr ,"AllocateDmaBuffer fail\n"); FreeBuffer(vmesa); + driDestroyOptionInfo(&viaScreen->optionCache); FREE(vmesa); return GL_FALSE; } @@ -640,6 +643,7 @@ if (!via_alloc_draw_buffer(vmesa, &vmesa->breadcrumb)) { fprintf(stderr ,"AllocateDmaBuffer fail\n"); FreeBuffer(vmesa); + driDestroyOptionInfo(&viaScreen->optionCache); FREE(vmesa); return GL_FALSE; } @@ -726,6 +730,8 @@ assert (is_empty_list(&vmesa->tex_image_list[VIA_MEM_SYSTEM])); assert (is_empty_list(&vmesa->freed_tex_buffers)); + driDestroyOptionCache (&vmesa->optionCache); + FREE(vmesa); } } --- Mesa-6.5/src/mesa/drivers/dri/unichrome/via_screen.c.orig 2005-11-19 15:46:27.000000000 +0100 +++ Mesa-6.5/src/mesa/drivers/dri/unichrome/via_screen.c 2006-07-01 13:58:11.000000000 +0200 @@ -144,6 +144,7 @@ viaScreen->bufs = via_create_empty_buffers(); if (viaScreen->bufs == NULL) { __driUtilMessage("viaInitDriver: via_create_empty_buffers() failed"); + driDestroyOptionInfo(&viaScreen->optionCache); FREE(viaScreen); return GL_FALSE; } @@ -152,6 +153,7 @@ gDRIPriv->regs.handle, gDRIPriv->regs.size, &viaScreen->reg) != 0) { + driDestroyOptionInfo(&viaScreen->optionCache); FREE(viaScreen); sPriv->private = NULL; __driUtilMessage("viaInitDriver: drmMap regs failed"); @@ -164,6 +166,7 @@ gDRIPriv->agp.size, (drmAddress *)&viaScreen->agpLinearStart) != 0) { drmUnmap(viaScreen->reg, gDRIPriv->regs.size); + driDestroyOptionInfo(&viaScreen->optionCache); FREE(viaScreen); sPriv->private = NULL; __driUtilMessage("viaInitDriver: drmMap agp failed"); @@ -206,6 +209,8 @@ via_free_empty_buffers(viaScreen->bufs); + driDestroyOptionInfo(&viaScreen->optionCache); + FREE(viaScreen); sPriv->private = NULL; }