Changeset 61523 in webkit
- Timestamp:
- Jun 20, 2010 7:34:54 PM (14 years ago)
- Location:
- trunk/WebKit/mac
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/mac/ChangeLog
r61522 r61523 1 2010-06-20 Anders Carlsson <andersca@apple.com> 2 3 Reviewed by Dan Bernstein. 4 5 Get rid of the extensionToMIME mapping in WebBasePluginPackage 6 https://bugs.webkit.org/show_bug.cgi?id=40897 7 8 Instead of using the extensionToMIME mutable dictionary, use the MIME types vector. 9 While this makes lookup of MIME types based on extensions linear instead of constant, 10 the number of extensions per plug-in is too small for it to matter. 11 12 * Plugins/WebBasePluginPackage.h: 13 * Plugins/WebBasePluginPackage.mm: 14 (-[WebBasePluginPackage initWithPath:]): 15 (-[WebBasePluginPackage dealloc]): 16 (-[WebBasePluginPackage supportsExtension:]): 17 (-[WebBasePluginPackage MIMETypeForExtension:]): 18 (-[WebBasePluginPackage setMIMEToExtensionsDictionary:]): 19 1 20 2010-06-20 Anders Carlsson <andersca@apple.com> 2 21 -
trunk/WebKit/mac/Plugins/WebBasePluginPackage.h
r61522 r61523 67 67 NSDictionary *MIMEToDescription; 68 68 NSDictionary *MIMEToExtensions; 69 NSMutableDictionary *extensionToMIME;70 69 71 70 BP_CreatePluginMIMETypesPreferencesFuncPtr BP_CreatePluginMIMETypesPreferences; … … 89 88 - (WebCore::String)bundleIdentifier; 90 89 91 - (BOOL)supportsExtension:( NSString *)extension;90 - (BOOL)supportsExtension:(const WebCore::String&)extension; 92 91 - (BOOL)supportsMIMEType:(NSString *)MIMEType; 93 92 … … 95 94 96 95 - (NSString *)descriptionForMIMEType:(NSString *)MIMEType; 97 - (NSString *)MIMETypeForExtension:( NSString *)extension;96 - (NSString *)MIMETypeForExtension:(const WebCore::String&)extension; 98 97 - (NSArray *)extensionsForMIMEType:(NSString *)MIMEType; 99 98 -
trunk/WebKit/mac/Plugins/WebBasePluginPackage.mm
r61522 r61523 134 134 } 135 135 #endif 136 extensionToMIME = [[NSMutableDictionary alloc] init];137 136 138 137 return self; … … 278 277 [MIMEToDescription release]; 279 278 [MIMEToExtensions release]; 280 [extensionToMIME release];281 279 282 280 if (cfBundle) … … 328 326 } 329 327 330 - (BOOL)supportsExtension:(NSString *)extension 331 { 332 return [extensionToMIME objectForKey:extension] != 0; 328 - (BOOL)supportsExtension:(const String&)extension 329 { 330 ASSERT(extension.lower() == extension); 331 332 for (size_t i = 0; i < mimeTypes.size(); ++i) { 333 const MimeClassInfo& mimeClassInfo = mimeTypes[i]; 334 335 for (size_t j = 0; i < mimeClassInfo.extensions.size(); ++j) { 336 if (mimeClassInfo.extensions[j] == extension) 337 return YES; 338 } 339 } 340 341 return NO; 333 342 } 334 343 … … 343 352 } 344 353 345 - (NSString *)MIMETypeForExtension:(NSString *)extension 346 { 347 return [extensionToMIME objectForKey:extension]; 354 - (NSString *)MIMETypeForExtension:(const String&)extension 355 { 356 ASSERT(extension.lower() == extension); 357 358 for (size_t i = 0; i < mimeTypes.size(); ++i) { 359 const MimeClassInfo& mimeClassInfo = mimeTypes[i]; 360 361 for (size_t j = 0; j < mimeClassInfo.extensions.size(); ++j) { 362 if (mimeClassInfo.extensions[j] == extension) 363 return mimeClassInfo.type; 364 } 365 } 366 367 return nil; 348 368 } 349 369 … … 363 383 [MIMEToExtensions release]; 364 384 MIMEToExtensions = [MIMEToExtensionsDictionary retain]; 365 366 // Reverse the mapping367 [extensionToMIME removeAllObjects];368 369 NSEnumerator *MIMEEnumerator = [MIMEToExtensions keyEnumerator], *extensionEnumerator;370 NSString *MIME, *extension;371 NSArray *extensions;372 373 while ((MIME = [MIMEEnumerator nextObject]) != nil) {374 extensions = [MIMEToExtensions objectForKey:MIME];375 extensionEnumerator = [extensions objectEnumerator];376 377 while ((extension = [extensionEnumerator nextObject]) != nil) {378 if (![extension isEqualToString:@""])379 [extensionToMIME setObject:MIME forKey:extension];380 }381 }382 385 } 383 386
Note: See TracChangeset
for help on using the changeset viewer.