diff options
author | Aaron Giles <aaron@aarongiles.com> | 2011-11-27 04:58:47 +0000 |
---|---|---|
committer | Aaron Giles <aaron@aarongiles.com> | 2011-11-27 04:58:47 +0000 |
commit | 4a3512c75692a91949a5b91c1c18bc24289ff0d0 (patch) | |
tree | 979e6b1b6fb60633461941ff6342e79715fca187 | |
parent | f93cda177573843a1cf657118e179671c59d40db (diff) |
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.
-rw-r--r-- | src/osd/windows/d3dhlsl.c | 6 | ||||
-rw-r--r-- | src/osd/windows/drawd3d.c | 6 |
2 files changed, 3 insertions, 9 deletions
diff --git a/src/osd/windows/d3dhlsl.c b/src/osd/windows/d3dhlsl.c index 0a3447354ea..625ad7f3400 100644 --- a/src/osd/windows/d3dhlsl.c +++ b/src/osd/windows/d3dhlsl.c @@ -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); diff --git a/src/osd/windows/drawd3d.c b/src/osd/windows/drawd3d.c index 6f193be9974..41245e70906 100644 --- a/src/osd/windows/drawd3d.c +++ b/src/osd/windows/drawd3d.c @@ -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); |