Fix obvious use-after-free error in device_delete().

Remove explicit freeing of HLSL shadow_texture, since it is allocated
by texture_create() which does its own tracking and freeing.
This commit is contained in:
Aaron Giles 2011-11-27 04:58:47 +00:00
parent f93cda1775
commit 4a3512c756
2 changed files with 3 additions and 9 deletions

View File

@ -2277,12 +2277,6 @@ void hlsl_info::delete_resources()
registered_targets = 0;
if (shadow_texture != NULL)
{
global_free(shadow_texture);
shadow_texture = NULL;
}
if (shadow_bitmap != NULL)
{
global_free(shadow_bitmap);

View File

@ -892,15 +892,15 @@ static int device_create_resources(d3d_info *d3d)
static void device_delete(d3d_info *d3d)
{
// free our effects
d3d->hlsl->delete_resources();
// delete the HLSL interface
global_free(d3d->hlsl);
// free our base resources
device_delete_resources(d3d);
// free our effects
d3d->hlsl->delete_resources();
// free the device itself
if (d3d->device != NULL)
(*d3dintf->device.release)(d3d->device);