diff options
| author | Neil <nyamatongwe@gmail.com> | 2017-05-02 10:35:33 +1000 |
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2017-05-02 10:35:33 +1000 |
| commit | aac6399324495f2dffe8b52c1f4bcfbe931bc3ff (patch) | |
| tree | 2805eddf2a787288c5b8dd77812648fbff04d92e /cocoa/PlatCocoa.mm | |
| parent | 4d21c4597dd1effe2fa75776c368b4184d9035af (diff) | |
| download | scintilla-mirror-aac6399324495f2dffe8b52c1f4bcfbe931bc3ff.tar.gz | |
For Cocoa, use unique_ptr for drawing surfaces and don't check for allocation
failure as that throws an exception.
Diffstat (limited to 'cocoa/PlatCocoa.mm')
| -rw-r--r-- | cocoa/PlatCocoa.mm | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index 5029947da..761a64463 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -1370,18 +1370,14 @@ static NSImage* ImageFromXPM(XPM* pxpm) const int width = pxpm->GetWidth(); const int height = pxpm->GetHeight(); PRectangle rcxpm(0, 0, width, height); - Surface* surfaceXPM = Surface::Allocate(SC_TECHNOLOGY_DEFAULT); - if (surfaceXPM) - { - surfaceXPM->InitPixMap(width, height, NULL, NULL); - SurfaceImpl* surfaceIXPM = static_cast<SurfaceImpl*>(surfaceXPM); - CGContextClearRect(surfaceIXPM->GetContext(), CGRectMake(0, 0, width, height)); - pxpm->Draw(surfaceXPM, rcxpm); - CGImageRef imageRef = surfaceIXPM->GetImage(); - img = [[NSImage alloc] initWithCGImage:imageRef size: NSZeroSize]; - CGImageRelease(imageRef); - delete surfaceXPM; - } + std::unique_ptr<Surface> surfaceXPM(Surface::Allocate(SC_TECHNOLOGY_DEFAULT)); + surfaceXPM->InitPixMap(width, height, NULL, NULL); + SurfaceImpl* surfaceIXPM = static_cast<SurfaceImpl*>(surfaceXPM.get()); + CGContextClearRect(surfaceIXPM->GetContext(), CGRectMake(0, 0, width, height)); + pxpm->Draw(surfaceXPM.get(), rcxpm); + CGImageRef imageRef = surfaceIXPM->GetImage(); + img = [[NSImage alloc] initWithCGImage:imageRef size: NSZeroSize]; + CGImageRelease(imageRef); } return img; } |
