diff options
author | nyamatongwe <devnull@localhost> | 2011-07-11 15:40:24 +1000 |
---|---|---|
committer | nyamatongwe <devnull@localhost> | 2011-07-11 15:40:24 +1000 |
commit | 34c751df2e9db01f8209510256831ec14dc6fd9f (patch) | |
tree | 7de2f8d024456d49d76ad3ec7c65f41fdacaec0f | |
parent | 15c3e1203d85d128a0432a35a5674763e1cac7b7 (diff) | |
download | scintilla-mirror-34c751df2e9db01f8209510256831ec14dc6fd9f.tar.gz |
Fix memory leaks for font and color objects.
-rw-r--r-- | cocoa/PlatCocoa.mm | 2 | ||||
-rw-r--r-- | cocoa/QuartzTextStyle.h | 15 | ||||
-rw-r--r-- | cocoa/QuartzTextStyleAttribute.h | 1 |
3 files changed, 16 insertions, 2 deletions
diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index 7e547e67d..6c1c5e8c4 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -922,6 +922,8 @@ void SurfaceImpl::DrawTextTransparent(PRectangle rc, Font &font_, int ybase, con QuartzTextStyle* style = reinterpret_cast<QuartzTextStyle*>(font_.GetID()); style->setCTStyleColor(color); + + CGColorRelease(color); textLayout->setText (reinterpret_cast<const UInt8*>(s), len, encoding, *reinterpret_cast<QuartzTextStyle*>(font_.GetID())); textLayout->draw(rc.left, ybase); diff --git a/cocoa/QuartzTextStyle.h b/cocoa/QuartzTextStyle.h index 099684ca7..51d03cf91 100644 --- a/cocoa/QuartzTextStyle.h +++ b/cocoa/QuartzTextStyle.h @@ -16,7 +16,10 @@ public: QuartzTextStyle() { fontRef = NULL; - styleDict = CFDictionaryCreateMutable(NULL, 1, NULL, NULL); + styleDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 2, + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); + characterSet = 0; } @@ -27,6 +30,12 @@ public: CFRelease(styleDict); styleDict = NULL; } + + if (fontRef) + { + CFRelease(fontRef); + fontRef = NULL; + } } CFMutableDictionaryRef getCTStyle() const @@ -62,7 +71,9 @@ public: if (styleDict != NULL) CFRelease(styleDict); - styleDict = CFDictionaryCreateMutable(NULL, 1, NULL, NULL); + styleDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 2, + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks); CFDictionaryAddValue(styleDict, kCTFontAttributeName, fontRef); } diff --git a/cocoa/QuartzTextStyleAttribute.h b/cocoa/QuartzTextStyleAttribute.h index ecea73b91..33c49281c 100644 --- a/cocoa/QuartzTextStyleAttribute.h +++ b/cocoa/QuartzTextStyleAttribute.h @@ -65,6 +65,7 @@ public: fontid = ::CTFontCreateWithName((CFStringRef)@"Monaco", size, NULL); } + CFRelease(fontName); } CTFontRef getFontID() |