Index: core/fxge/apple/fx_quartz_device.cpp |
diff --git a/core/fxge/apple/fx_quartz_device.cpp b/core/fxge/apple/fx_quartz_device.cpp |
index b3591a3da132eed48b8d6cacee31b3c686bc3c42..0f3832e73357cc878a2825bb90ef2f7f2e19d092 100644 |
--- a/core/fxge/apple/fx_quartz_device.cpp |
+++ b/core/fxge/apple/fx_quartz_device.cpp |
@@ -1023,6 +1023,7 @@ FX_BOOL CFX_QuartzDevice::Attach(CGContextRef context, int32_t nDeviceClass) { |
SetDeviceDriver(pDriver); |
return TRUE; |
} |
+ |
FX_BOOL CFX_QuartzDevice::Attach(CFX_DIBitmap* pBitmap) { |
SetBitmap(pBitmap); |
m_pContext = createContextWithBitmap(pBitmap); |
@@ -1034,18 +1035,17 @@ FX_BOOL CFX_QuartzDevice::Attach(CFX_DIBitmap* pBitmap) { |
SetDeviceDriver(pDriver); |
return TRUE; |
} |
+ |
FX_BOOL CFX_QuartzDevice::Create(int32_t width, |
int32_t height, |
FXDIB_Format format) { |
if ((uint8_t)format < 32) { |
return FALSE; |
} |
- CFX_DIBitmap* pBitmap = new CFX_DIBitmap; |
- if (!pBitmap->Create(width, height, format)) { |
- delete pBitmap; |
+ std::unique_ptr<CFX_DIBitmap> pBitmap(new CFX_DIBitmap); |
+ if (!pBitmap->Create(width, height, format)) |
return FALSE; |
- } |
m_bOwnedBitmap = TRUE; |
- return Attach(pBitmap); |
+ return Attach(pBitmap.release()); |
} |
#endif // _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ |