diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-08-23 14:56:53 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-08-23 15:04:15 +0200 |
commit | 84bc7af08210a97abc486a662a138a41cf664319 (patch) | |
tree | 89a84be1b759224be93eb70499ce43c3eea652e4 | |
parent | 594c584b4669521b85dbe354af7ccfa2bcf9b617 (diff) |
Free surface id if surface construction failed
-rw-r--r-- | display/driver.c | 6 |
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) |