summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2010-08-23 14:56:53 +0200
committerAlexander Larsson <alexl@redhat.com>2010-08-23 15:04:15 +0200
commit84bc7af08210a97abc486a662a138a41cf664319 (patch)
tree89a84be1b759224be93eb70499ce43c3eea652e4
parent594c584b4669521b85dbe354af7ccfa2bcf9b617 (diff)
Free surface id if surface construction failed
-rw-r--r--display/driver.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/display/driver.c b/display/driver.c
index 46df8f2..1c8e1f6 100644
--- a/display/driver.c
+++ b/display/driver.c
@@ -1248,14 +1248,16 @@ HBITMAP APIENTRY DrvCreateDeviceBitmap(DHPDEV dhpdev, SIZEL size, ULONG format)
hbitmap = CreateDeviceBitmap(pdev, size, pdev->bitmap_format, &phys_mem, &base_mem, surface_id,
DEVICE_BITMAP_ALLOCATION_TYPE_VRAM);
if (!hbitmap) {
- goto out_error;
+ goto out_error2;
}
return hbitmap;
// to optimize the failure case
+out_error2:
+ FreeSurface(pdev, surface_id);
out_error:
- return 0;
+ return 0;
}
VOID APIENTRY DrvDeleteDeviceBitmap(DHSURF dhsurf)