Changeset 20858 in webkit
- Timestamp:
- Apr 11, 2007 11:42:45 PM (17 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r20857 r20858 1 2007-04-11 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Maciej. 4 5 Adding RetainPtr to the many global obj-c pointers we use in 6 C/C++ methods. This is necessary to prevent GC from collecting 7 globals we want to keep around. 8 9 We use RetainPtr in obj-c++ and c++ files, and CFRetain/Release in pure 10 obj-c. 11 12 Also made the Pasteboard::m_pasteboard a RetainPtr although it 13 shouldn't be necessary as the only NSPasteboard instances that 14 should ever be inserted are the system clipboard and dragging 15 pasteboard. Neither of which should ever be collected. 16 17 * page/mac/WebCoreFrameBridge.mm: 18 (_getPreSmartSet): 19 (_getPostSmartSet): 20 * platform/Pasteboard.h: 21 * platform/graphics/mac/ColorMac.mm: 22 (WebCore::nsColor): 23 * platform/graphics/mac/GraphicsContextMac.mm: 24 (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): 25 * platform/mac/FontDataMac.mm: 26 (WebCore::webFallbackFontFamily): 27 * platform/mac/PasteboardMac.mm: 28 (WebCore::writableTypesForURL): 29 (WebCore::writableTypesForImage): 30 (WebCore::Pasteboard::clear): 31 (WebCore::Pasteboard::writeSelection): 32 (WebCore::Pasteboard::writeURL): 33 (WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment): 34 (WebCore::Pasteboard::writeImage): 35 (WebCore::Pasteboard::canSmartReplace): 36 (WebCore::Pasteboard::plainText): 37 (WebCore::Pasteboard::documentFragment): 38 1 39 2007-04-11 Mitz Pettel <mitz@webkit.org> 2 40 -
trunk/WebCore/page/mac/WebCoreFrameBridge.mm
r20837 r20858 1347 1347 static NSCharacterSet *_getPreSmartSet(void) 1348 1348 { 1349 static NSMutableCharacterSet *_preSmartSet = nil;1349 static RetainPtr<NSMutableCharacterSet> _preSmartSet = nil; 1350 1350 if (!_preSmartSet) { 1351 1351 _preSmartSet = [[NSMutableCharacterSet characterSetWithCharactersInString:_preSmartString] retain]; 1352 [_preSmartSet formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];1352 [_preSmartSet.get() formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 1353 1353 // Adding CJK ranges 1354 [_preSmartSet addCharactersInRange:NSMakeRange(0x1100, 256)]; // Hangul Jamo (0x1100 - 0x11FF)1355 [_preSmartSet addCharactersInRange:NSMakeRange(0x2E80, 352)]; // CJK & Kangxi Radicals (0x2E80 - 0x2FDF)1356 [_preSmartSet addCharactersInRange:NSMakeRange(0x2FF0, 464)]; // Ideograph Descriptions, CJK Symbols, Hiragana, Katakana, Bopomofo, Hangul Compatibility Jamo, Kanbun, & Bopomofo Ext (0x2FF0 - 0x31BF)1357 [_preSmartSet addCharactersInRange:NSMakeRange(0x3200, 29392)]; // Enclosed CJK, CJK Ideographs (Uni Han & Ext A), & Yi (0x3200 - 0xA4CF)1358 [_preSmartSet addCharactersInRange:NSMakeRange(0xAC00, 11183)]; // Hangul Syllables (0xAC00 - 0xD7AF)1359 [_preSmartSet addCharactersInRange:NSMakeRange(0xF900, 352)]; // CJK Compatibility Ideographs (0xF900 - 0xFA5F)1360 [_preSmartSet addCharactersInRange:NSMakeRange(0xFE30, 32)]; // CJK Compatibility From (0xFE30 - 0xFE4F)1361 [_preSmartSet addCharactersInRange:NSMakeRange(0xFF00, 240)]; // Half/Full Width Form (0xFF00 - 0xFFEF)1362 [_preSmartSet addCharactersInRange:NSMakeRange(0x20000, 0xA6D7)]; // CJK Ideograph Exntension B1363 [_preSmartSet addCharactersInRange:NSMakeRange(0x2F800, 0x021E)]; // CJK Compatibility Ideographs (0x2F800 - 0x2FA1D)1364 } 1365 return _preSmartSet ;1354 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0x1100, 256)]; // Hangul Jamo (0x1100 - 0x11FF) 1355 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0x2E80, 352)]; // CJK & Kangxi Radicals (0x2E80 - 0x2FDF) 1356 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0x2FF0, 464)]; // Ideograph Descriptions, CJK Symbols, Hiragana, Katakana, Bopomofo, Hangul Compatibility Jamo, Kanbun, & Bopomofo Ext (0x2FF0 - 0x31BF) 1357 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0x3200, 29392)]; // Enclosed CJK, CJK Ideographs (Uni Han & Ext A), & Yi (0x3200 - 0xA4CF) 1358 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0xAC00, 11183)]; // Hangul Syllables (0xAC00 - 0xD7AF) 1359 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0xF900, 352)]; // CJK Compatibility Ideographs (0xF900 - 0xFA5F) 1360 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0xFE30, 32)]; // CJK Compatibility From (0xFE30 - 0xFE4F) 1361 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0xFF00, 240)]; // Half/Full Width Form (0xFF00 - 0xFFEF) 1362 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0x20000, 0xA6D7)]; // CJK Ideograph Exntension B 1363 [_preSmartSet.get() addCharactersInRange:NSMakeRange(0x2F800, 0x021E)]; // CJK Compatibility Ideographs (0x2F800 - 0x2FA1D) 1364 } 1365 return _preSmartSet.get(); 1366 1366 } 1367 1367 1368 1368 static NSCharacterSet *_getPostSmartSet(void) 1369 1369 { 1370 static NSMutableCharacterSet *_postSmartSet = nil;1370 static RetainPtr<NSMutableCharacterSet> _postSmartSet = nil; 1371 1371 if (!_postSmartSet) { 1372 1372 _postSmartSet = [[NSMutableCharacterSet characterSetWithCharactersInString:_postSmartString] retain]; 1373 [_postSmartSet formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];1374 [_postSmartSet addCharactersInRange:NSMakeRange(0x1100, 256)]; // Hangul Jamo (0x1100 - 0x11FF)1375 [_postSmartSet addCharactersInRange:NSMakeRange(0x2E80, 352)]; // CJK & Kangxi Radicals (0x2E80 - 0x2FDF)1376 [_postSmartSet addCharactersInRange:NSMakeRange(0x2FF0, 464)]; // Ideograph Descriptions, CJK Symbols, Hiragana, Katakana, Bopomofo, Hangul Compatibility Jamo, Kanbun, & Bopomofo Ext (0x2FF0 - 0x31BF)1377 [_postSmartSet addCharactersInRange:NSMakeRange(0x3200, 29392)]; // Enclosed CJK, CJK Ideographs (Uni Han & Ext A), & Yi (0x3200 - 0xA4CF)1378 [_postSmartSet addCharactersInRange:NSMakeRange(0xAC00, 11183)]; // Hangul Syllables (0xAC00 - 0xD7AF)1379 [_postSmartSet addCharactersInRange:NSMakeRange(0xF900, 352)]; // CJK Compatibility Ideographs (0xF900 - 0xFA5F)1380 [_postSmartSet addCharactersInRange:NSMakeRange(0xFE30, 32)]; // CJK Compatibility From (0xFE30 - 0xFE4F)1381 [_postSmartSet addCharactersInRange:NSMakeRange(0xFF00, 240)]; // Half/Full Width Form (0xFF00 - 0xFFEF)1382 [_postSmartSet addCharactersInRange:NSMakeRange(0x20000, 0xA6D7)]; // CJK Ideograph Exntension B1383 [_postSmartSet addCharactersInRange:NSMakeRange(0x2F800, 0x021E)]; // CJK Compatibility Ideographs (0x2F800 - 0x2FA1D)1384 [_postSmartSet formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]];1385 } 1386 return _postSmartSet ;1373 [_postSmartSet.get() formUnionWithCharacterSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 1374 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0x1100, 256)]; // Hangul Jamo (0x1100 - 0x11FF) 1375 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0x2E80, 352)]; // CJK & Kangxi Radicals (0x2E80 - 0x2FDF) 1376 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0x2FF0, 464)]; // Ideograph Descriptions, CJK Symbols, Hiragana, Katakana, Bopomofo, Hangul Compatibility Jamo, Kanbun, & Bopomofo Ext (0x2FF0 - 0x31BF) 1377 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0x3200, 29392)]; // Enclosed CJK, CJK Ideographs (Uni Han & Ext A), & Yi (0x3200 - 0xA4CF) 1378 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0xAC00, 11183)]; // Hangul Syllables (0xAC00 - 0xD7AF) 1379 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0xF900, 352)]; // CJK Compatibility Ideographs (0xF900 - 0xFA5F) 1380 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0xFE30, 32)]; // CJK Compatibility From (0xFE30 - 0xFE4F) 1381 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0xFF00, 240)]; // Half/Full Width Form (0xFF00 - 0xFFEF) 1382 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0x20000, 0xA6D7)]; // CJK Ideograph Exntension B 1383 [_postSmartSet.get() addCharactersInRange:NSMakeRange(0x2F800, 0x021E)]; // CJK Compatibility Ideographs (0x2F800 - 0x2FA1D) 1384 [_postSmartSet.get() formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]]; 1385 } 1386 return _postSmartSet.get(); 1387 1387 } 1388 1388 -
trunk/WebCore/platform/Pasteboard.h
r20846 r20858 30 30 #include <wtf/HashSet.h> 31 31 #include <wtf/Noncopyable.h> 32 33 #if PLATFORM(MAC) 34 #include <wtf/RetainPtr.h> 35 #endif 32 36 33 37 // FIXME: This class is too high-level to be in the platform directory, since it … … 91 95 #if PLATFORM(MAC) 92 96 Pasteboard(NSPasteboard *); 93 NSPasteboard *m_pasteboard;97 RetainPtr<NSPasteboard> m_pasteboard; 94 98 #endif 95 99 -
trunk/WebCore/platform/graphics/mac/ColorMac.mm
r17727 r20858 28 28 29 29 #import <wtf/Assertions.h> 30 #import <wtf/RetainPtr.h> 30 31 31 32 @interface WebCoreControlTintObserver : NSObject … … 47 48 case 0: { 48 49 // Need this to avoid returning nil because cachedRGBAValues will default to 0. 49 static NSColor* clearColor = [[NSColor clearColor] retain];50 return clearColor ;50 static RetainPtr<NSColor> clearColor = [NSColor clearColor]; 51 return clearColor.get(); 51 52 } 52 53 case Color::black: { 53 static NSColor* blackColor = [[NSColor blackColor] retain];54 return blackColor ;54 static RetainPtr<NSColor> blackColor = [NSColor blackColor]; 55 return blackColor.get(); 55 56 } 56 57 case Color::white: { 57 static NSColor* whiteColor = [[NSColor whiteColor] retain];58 return whiteColor ;58 static RetainPtr<NSColor> whiteColor = [NSColor whiteColor]; 59 return whiteColor.get(); 59 60 } 60 61 default: { 61 62 const int cacheSize = 32; 62 63 static unsigned cachedRGBAValues[cacheSize]; 63 static NSColor*cachedColors[cacheSize];64 static RetainPtr<NSColor> cachedColors[cacheSize]; 64 65 65 66 for (int i = 0; i != cacheSize; ++i) 66 67 if (cachedRGBAValues[i] == c) 67 return cachedColors[i] ;68 return cachedColors[i].get(); 68 69 69 70 #ifdef COLORMATCH_EVERYTHING … … 81 82 static int cursor; 82 83 cachedRGBAValues[cursor] = c; 83 [cachedColors[cursor] autorelease]; 84 cachedColors[cursor] = [result retain]; 84 cachedColors[cursor] = result; 85 85 if (++cursor == cacheSize) 86 86 cursor = 0; -
trunk/WebCore/platform/graphics/mac/GraphicsContextMac.mm
r18315 r20858 106 106 107 107 // Constants for spelling pattern color 108 static NSColor *spellingPatternColor = nil;108 static RetainPtr<NSColor> spellingPatternColor = nil; 109 109 static bool usingDotForSpelling = false; 110 110 111 111 // Constants for grammar pattern color 112 static NSColor *grammarPatternColor = nil;112 static RetainPtr<NSColor> grammarPatternColor = nil; 113 113 static bool usingDotForGrammar = false; 114 114 … … 126 126 else 127 127 color = [NSColor redColor]; 128 spellingPatternColor = [color retain];128 spellingPatternColor = color; 129 129 } 130 130 … … 137 137 else 138 138 color = [NSColor greenColor]; 139 grammarPatternColor = [color retain];139 grammarPatternColor = color; 140 140 } 141 141 … … 144 144 if (grammar) { 145 145 usingDot = usingDotForGrammar; 146 patternColor = grammarPatternColor ;146 patternColor = grammarPatternColor.get(); 147 147 } else { 148 148 usingDot = usingDotForSpelling; 149 patternColor = spellingPatternColor ;149 patternColor = spellingPatternColor.get(); 150 150 } 151 151 -
trunk/WebCore/platform/mac/FontDataMac.mm
r19407 r20858 41 41 #import <unicode/uchar.h> 42 42 #import <wtf/Assertions.h> 43 #import <wtf/RetainPtr.h> 43 44 44 45 @interface NSFont (WebAppKitSecretAPI) … … 85 86 static NSString *webFallbackFontFamily(void) 86 87 { 87 static NSString *webFallbackFontFamily = nil;88 static RetainPtr<NSString> webFallbackFontFamily = nil; 88 89 if (!webFallbackFontFamily) 89 webFallbackFontFamily = [[ [NSFont systemFontOfSize:16.0] familyName] retain];90 return webFallbackFontFamily ;90 webFallbackFontFamily = [[NSFont systemFontOfSize:16.0] familyName]; 91 return webFallbackFontFamily.get(); 91 92 } 92 93 -
trunk/WebCore/platform/mac/PasteboardMac.mm
r20846 r20858 77 77 static NSArray* writableTypesForURL() 78 78 { 79 static NSArray *types = nil;79 static RetainPtr<NSArray> types = nil; 80 80 if (!types) { 81 81 types = [[NSArray alloc] initWithObjects: … … 87 87 nil]; 88 88 } 89 return types ;89 return types.get(); 90 90 } 91 91 92 92 static NSArray* writableTypesForImage() 93 93 { 94 static NSMutableArray *types = nil;94 static RetainPtr<NSMutableArray> types = nil; 95 95 if (!types) { 96 96 types = [[NSMutableArray alloc] initWithObjects:NSTIFFPboardType, nil]; 97 [types addObjectsFromArray:writableTypesForURL()];98 [types addObject:NSRTFDPboardType];99 } 100 return types ;97 [types.get() addObjectsFromArray:writableTypesForURL()]; 98 [types.get() addObject:NSRTFDPboardType]; 99 } 100 return types.get(); 101 101 } 102 102 … … 119 119 void Pasteboard::clear() 120 120 { 121 [m_pasteboard declareTypes:[NSArray array] owner:nil];121 [m_pasteboard.get() declareTypes:[NSArray array] owner:nil]; 122 122 } 123 123 … … 200 200 void Pasteboard::writeSelection(Range* selectedRange, bool canSmartCopyOrDelete, Frame* frame) 201 201 { 202 Pasteboard::writeSelection(m_pasteboard , selectedRange, canSmartCopyOrDelete, frame);202 Pasteboard::writeSelection(m_pasteboard.get(), selectedRange, canSmartCopyOrDelete, frame); 203 203 } 204 204 … … 242 242 void Pasteboard::writeURL(const KURL& url, const String& titleStr, Frame* frame) 243 243 { 244 Pasteboard::writeURL(m_pasteboard , nil, url, titleStr, frame);244 Pasteboard::writeURL(m_pasteboard.get(), nil, url, titleStr, frame); 245 245 } 246 246 … … 267 267 268 268 NSData *RTFDData = [string RTFDFromRange:NSMakeRange(0, [string length]) documentAttributes:nil]; 269 [m_pasteboard setData:RTFDData forType:NSRTFDPboardType];269 [m_pasteboard.get() setData:RTFDData forType:NSRTFDPboardType]; 270 270 } 271 271 … … 279 279 280 280 NSArray* types = writableTypesForImage(); 281 [m_pasteboard declareTypes:types owner:nil];282 writeURL(m_pasteboard , types, URL, nsStringNilIfEmpty(title), frame);281 [m_pasteboard.get() declareTypes:types owner:nil]; 282 writeURL(m_pasteboard.get(), types, URL, nsStringNilIfEmpty(title), frame); 283 283 284 284 ASSERT(node->renderer() && node->renderer()->isImage()); … … 289 289 ASSERT(image); 290 290 291 [m_pasteboard setData:[image->getNSImage() TIFFRepresentation] forType:NSTIFFPboardType];291 [m_pasteboard.get() setData:[image->getNSImage() TIFFRepresentation] forType:NSTIFFPboardType]; 292 292 293 293 String MIMEType = cachedImage->response().mimeType(); … … 299 299 bool Pasteboard::canSmartReplace() 300 300 { 301 return [[m_pasteboard types] containsObject:WebSmartPastePboardType];301 return [[m_pasteboard.get() types] containsObject:WebSmartPastePboardType]; 302 302 } 303 303 304 304 String Pasteboard::plainText(Frame* frame) 305 305 { 306 NSArray *types = [m_pasteboard types];306 NSArray *types = [m_pasteboard.get() types]; 307 307 308 308 if ([types containsObject:NSStringPboardType]) 309 return [m_pasteboard stringForType:NSStringPboardType];309 return [m_pasteboard.get() stringForType:NSStringPboardType]; 310 310 311 311 NSAttributedString *attributedString = nil; … … 313 313 314 314 if ([types containsObject:NSRTFDPboardType]) 315 attributedString = [[NSAttributedString alloc] initWithRTFD:[m_pasteboard dataForType:NSRTFDPboardType] documentAttributes:NULL];315 attributedString = [[NSAttributedString alloc] initWithRTFD:[m_pasteboard.get() dataForType:NSRTFDPboardType] documentAttributes:NULL]; 316 316 if (attributedString == nil && [types containsObject:NSRTFPboardType]) 317 attributedString = [[NSAttributedString alloc] initWithRTF:[m_pasteboard dataForType:NSRTFPboardType] documentAttributes:NULL];317 attributedString = [[NSAttributedString alloc] initWithRTF:[m_pasteboard.get() dataForType:NSRTFPboardType] documentAttributes:NULL]; 318 318 if (attributedString != nil) { 319 319 string = [[attributedString string] copy]; … … 323 323 324 324 if ([types containsObject:NSFilenamesPboardType]) { 325 string = [[m_pasteboard propertyListForType:NSFilenamesPboardType] componentsJoinedByString:@"\n"];325 string = [[m_pasteboard.get() propertyListForType:NSFilenamesPboardType] componentsJoinedByString:@"\n"]; 326 326 if (string != nil) 327 327 return string; … … 331 331 NSURL *URL; 332 332 333 if ((URL = [NSURL URLFromPasteboard:m_pasteboard ])) {333 if ((URL = [NSURL URLFromPasteboard:m_pasteboard.get()])) { 334 334 // FIXME: using the editorClient to call into webkit, for now, since 335 335 // calling [URL _web_userVisibleString] from WebCore involves migrating a sizable web of … … 346 346 PassRefPtr<DocumentFragment> Pasteboard::documentFragment(Frame* frame, PassRefPtr<Range> context, bool allowPlainText, bool& chosePlainText) 347 347 { 348 NSArray *types = [m_pasteboard types];348 NSArray *types = [m_pasteboard.get() types]; 349 349 chosePlainText = false; 350 350 351 351 if ([types containsObject:NSHTMLPboardType]) { 352 NSString *HTMLString = [m_pasteboard stringForType:NSHTMLPboardType];352 NSString *HTMLString = [m_pasteboard.get() stringForType:NSHTMLPboardType]; 353 353 // This is a hack to make Microsoft's HTML pasteboard data work. See 3778785. 354 354 if ([HTMLString hasPrefix:@"Version:"]) { … … 367 367 if (allowPlainText && [types containsObject:NSStringPboardType]) { 368 368 chosePlainText = true; 369 RefPtr<DocumentFragment> fragment = createFragmentFromText(context.get(), [m_pasteboard stringForType:NSStringPboardType]);369 RefPtr<DocumentFragment> fragment = createFragmentFromText(context.get(), [m_pasteboard.get() stringForType:NSStringPboardType]); 370 370 if (fragment) 371 371 return fragment.release(); -
trunk/WebKit/ChangeLog
r20856 r20858 1 2007-04-11 Oliver Hunt <oliver@apple.com> 2 3 Reviewed by Maciej. 4 5 Adding RetainPtr to the many global obj-c pointers we use in 6 C/C++ methods. This is necessary to prevent GC from collecting 7 globals we want to keep around. 8 9 We use RetainPtr in obj-c++ and c++ files, and CFRetain/Release in pure 10 obj-c. 11 12 This fixes <rdar://problem/5058731> -- Crash in 13 WebCore::DragData::containsCompatibleContent due to early release 14 of types array 15 16 * Misc/WebLocalizableStrings.m: 17 (WebLocalizedString): 18 * Misc/WebNSPasteboardExtras.mm: 19 (+[NSPasteboard _web_writableTypesForURL]): 20 (_writableTypesForImageWithoutArchive): 21 (_writableTypesForImageWithArchive): 22 * Misc/WebNSURLExtras.m: 23 (applyHostNameFunctionToMailToURLString): 24 (applyHostNameFunctionToURLString): 25 * Misc/WebStringTruncator.m: 26 (defaultMenuFont): 27 (fontFromNSFont): 28 * WebCoreSupport/WebPasteboardHelper.mm: 29 (WebPasteboardHelper::insertablePasteboardTypes): 30 31 ======= 1 32 2007-04-11 MorganL <morganl.webkit@yahoo.com> 2 33 … … 15 46 (WebChromeClient::createModalDialog): 16 47 48 >>>>>>> .r20857 17 49 2007-04-10 Brady Eidson <beidson@apple.com> 18 50 -
trunk/WebKit/Misc/WebLocalizableStrings.m
r14021 r20858 41 41 mainBundle = [NSBundle mainBundle]; 42 42 ASSERT(mainBundle); 43 CFRetain(mainBundle); 43 44 } 44 45 bundle = mainBundle; -
trunk/WebKit/Misc/WebNSPasteboardExtras.mm
r19485 r20858 38 38 #import <WebCore/MimeTypeRegistry.h> 39 39 #import <WebKit/DOMPrivate.h> 40 #import <WTF/RetainPtr.h> 40 41 #import <WebKitSystemInterface.h> 41 42 … … 85 86 + (NSArray *)_web_writableTypesForURL 86 87 { 87 static NSArray *types = nil;88 static RetainPtr<NSArray> types; 88 89 if (!types) { 89 90 types = [[NSArray alloc] initWithObjects: … … 95 96 nil]; 96 97 } 97 return types ;98 return types.get(); 98 99 } 99 100 100 101 static NSArray *_writableTypesForImageWithoutArchive (void) 101 102 { 102 static NSMutableArray *types = nil;103 static RetainPtr<NSMutableArray> types; 103 104 if (types == nil) { 104 105 types = [[NSMutableArray alloc] initWithObjects:NSTIFFPboardType, nil]; 105 [types addObjectsFromArray:[NSPasteboard _web_writableTypesForURL]];106 } 107 return types ;106 [types.get() addObjectsFromArray:[NSPasteboard _web_writableTypesForURL]]; 107 } 108 return types.get(); 108 109 } 109 110 110 111 static NSArray *_writableTypesForImageWithArchive (void) 111 112 { 112 static NSMutableArray *types = nil;113 static RetainPtr<NSMutableArray> types; 113 114 if (types == nil) { 114 115 types = [_writableTypesForImageWithoutArchive() mutableCopy]; 115 [types addObject:NSRTFDPboardType];116 [types addObject:WebArchivePboardType];117 } 118 return types ;116 [types.get() addObject:NSRTFDPboardType]; 117 [types.get() addObject:WebArchivePboardType]; 118 } 119 return types.get(); 119 120 } 120 121 -
trunk/WebKit/Misc/WebNSURLExtras.m
r19764 r20858 103 103 static NSCharacterSet *hostNameOrStringStartCharacters; 104 104 if (hostNameOrStringStartCharacters == nil) { 105 hostNameOrStringStartCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"\"@?"] retain]; 105 hostNameOrStringStartCharacters = [NSCharacterSet characterSetWithCharactersInString:@"\"@?"]; 106 CFRetain(hostNameOrStringStartCharacters); 106 107 } 107 108 static NSCharacterSet *hostNameEndCharacters; 108 109 if (hostNameEndCharacters == nil) { 109 hostNameEndCharacters = [[NSCharacterSet characterSetWithCharactersInString:@">,?"] retain]; 110 hostNameEndCharacters = [NSCharacterSet characterSetWithCharactersInString:@">,?"]; 111 CFRetain(hostNameEndCharacters); 110 112 } 111 113 static NSCharacterSet *quotedStringCharacters; 112 114 if (quotedStringCharacters == nil) { 113 quotedStringCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"\"\\"] retain]; 115 quotedStringCharacters = [NSCharacterSet characterSetWithCharactersInString:@"\"\\"]; 116 CFRetain(quotedStringCharacters); 114 117 } 115 118 … … 205 208 static NSCharacterSet *nonSchemeCharacters; 206 209 if (nonSchemeCharacters == nil) { 207 nonSchemeCharacters = [[[NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-."] invertedSet] retain]; 210 nonSchemeCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-."] invertedSet]; 211 CFRetain(nonSchemeCharacters); 208 212 } 209 213 if ([string rangeOfCharacterFromSet:nonSchemeCharacters options:0 range:NSMakeRange(0, separatorRange.location)].location != NSNotFound) { … … 215 219 static NSCharacterSet *hostTerminators; 216 220 if (hostTerminators == nil) { 217 hostTerminators = [[NSCharacterSet characterSetWithCharactersInString:@":/?#"] retain]; 221 hostTerminators = [NSCharacterSet characterSetWithCharactersInString:@":/?#"]; 222 CFRetain(hostTerminators); 218 223 } 219 224 -
trunk/WebKit/Misc/WebStringTruncator.m
r19762 r20858 39 39 static NSFont *defaultMenuFont() 40 40 { 41 static NSFont *defaultMenuFont = [[NSFont menuFontOfSize:0] retain]; 41 static NSFont *defaultMenuFont = nil; 42 if (!defaultMenuFont) { 43 defaultMenuFont = [NSFont menuFontOfSize:0]; 44 CFRetain(defaultMenuFont); 45 } 42 46 return defaultMenuFont; 43 47 } … … 50 54 if ([font isEqual:currentFont]) 51 55 return currentRenderer; 52 53 [currentFont release]; 54 currentFont = [font retain]; 56 if (currentFont) 57 CFRelease(currentFont); 58 currentFont = font; 59 CFRetain(currentFont); 55 60 FontPlatformData f(font); 56 61 currentRenderer = Font(f, ![[NSGraphicsContext currentContext] isDrawingToScreen]); -
trunk/WebKit/WebCoreSupport/WebPasteboardHelper.mm
r19480 r20858 33 33 #import <WebCore/DOMDocumentFragment.h> 34 34 #import <WebCore/PlatformString.h> 35 #import <WTF/RetainPtr.h> 35 36 36 37 using namespace WebCore; … … 90 91 NSArray *WebPasteboardHelper::insertablePasteboardTypes() const 91 92 { 92 static NSArray *types = [[NSArray alloc] initWithObjects:WebArchivePboardType, NSHTMLPboardType,93 static RetainPtr<NSArray> types = [[NSArray alloc] initWithObjects:WebArchivePboardType, NSHTMLPboardType, 93 94 NSFilenamesPboardType, NSTIFFPboardType, NSPICTPboardType, NSURLPboardType, 94 95 NSRTFDPboardType, NSRTFPboardType, NSStringPboardType, NSColorPboardType, nil]; 95 96 96 return types ;97 return types.get(); 97 98 }
Note: See TracChangeset
for help on using the changeset viewer.