diff options
| -rw-r--r-- | cocoa/PlatCocoa.mm | 14 | 
1 files changed, 10 insertions, 4 deletions
| diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index 027fd6416..300af3775 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -481,6 +481,13 @@ void drawImageRefCallback(CGImageRef pattern, CGContextRef gc)  //-------------------------------------------------------------------------------------------------- +void releaseImageRefCallback(CGImageRef pattern) +{ +  CGImageRelease(pattern); +} + +//-------------------------------------------------------------------------------------------------- +  void SurfaceImpl::FillRectangle(PRectangle rc, Surface &surfacePattern)  {    SurfaceImpl& patternSurface = static_cast<SurfaceImpl &>(surfacePattern); @@ -493,8 +500,9 @@ void SurfaceImpl::FillRectangle(PRectangle rc, Surface &surfacePattern)      return;    } -  const CGPatternCallbacks drawImageCallbacks = { 0,  -    reinterpret_cast<CGPatternDrawPatternCallback>(drawImageRefCallback), NULL }; +  const CGPatternCallbacks drawImageCallbacks = { 0, +    reinterpret_cast<CGPatternDrawPatternCallback>(drawImageRefCallback), +    reinterpret_cast<CGPatternReleaseInfoCallback>(releaseImageRefCallback) };    CGPatternRef pattern = CGPatternCreate(image,                                           CGRectMake(0, 0, patternSurface.bitmapWidth, patternSurface.bitmapHeight), @@ -526,8 +534,6 @@ void SurfaceImpl::FillRectangle(PRectangle rc, Surface &surfacePattern)      colorSpace = NULL;      CGPatternRelease( pattern );      pattern = NULL; -    CGImageRelease( image ); -    image = NULL;    } /* pattern != NULL */  } | 
