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 | b18d0604c5bfc2f6441347bfe9a0583fd5c52c59 (patch) | |
| tree | ef777e189a614b4e88023e43d712faf52d2c0a92 | |
| parent | adf1a27336070807b9828b145c69182110afa1f5 (diff) | |
| download | scintilla-mirror-b18d0604c5bfc2f6441347bfe9a0583fd5c52c59.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 */ } |
