diff options
author | nyamatongwe <nyamatongwe@gmail.com> | 2011-12-01 14:42:51 +1100 |
---|---|---|
committer | nyamatongwe <nyamatongwe@gmail.com> | 2011-12-01 14:42:51 +1100 |
commit | 9fa29412df438983d827dbb2f202344f294ccc7f (patch) | |
tree | c025f601d0b86bf8de7d0dea76d3384442ce793e | |
parent | 73181ebca1de07add055ad80ba0d1612fc1637bb (diff) | |
download | scintilla-mirror-9fa29412df438983d827dbb2f202344f294ccc7f.tar.gz |
Change memory management so will work with deferred drawing such as printing.
-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 */ } |