Index: chrome/browser/cocoa/browser_window_controller.mm |
=================================================================== |
--- chrome/browser/cocoa/browser_window_controller.mm (revision 24242) |
+++ chrome/browser/cocoa/browser_window_controller.mm (working copy) |
@@ -1202,7 +1202,16 @@ |
@implementation GTMTheme (BrowserThemeProviderInitialization) |
+ (GTMTheme *)themeWithBrowserThemeProvider:(BrowserThemeProvider*)provider |
isOffTheRecord:(BOOL)isOffTheRecord { |
- GTMTheme *theme = [[[GTMTheme alloc] init] autorelease]; |
+ // First check if it's in the cache. |
+ typedef std::pair<std::string, BOOL> ThemeKey; |
+ static std::map<ThemeKey, GTMTheme*> cache; |
Mark Mentovai
2009/08/26 01:25:49
I think that every place we have a static that lea
pink (ping after 24hrs)
2009/08/26 14:55:56
Done.
|
+ ThemeKey key(provider->GetThemeID(), isOffTheRecord); |
+ GTMTheme* theme = cache[key]; |
+ if (theme) |
+ return theme; |
+ |
+ theme = [[GTMTheme alloc] init]; // "Leak" it in the cache. |
+ cache[key] = theme; |
if (isOffTheRecord) { |
NSColor* incognitoColor = [NSColor colorWithCalibratedRed:83/255.0 |
green:108.0/255.0 |