Reviewed by Hyatt.
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 3 Nov 2004 01:07:17 +0000 (01:07 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 3 Nov 2004 01:07:17 +0000 (01:07 +0000)
        - [NSFont menuFontOfSize:], called from WebStringTruncator, was taking > 9% of the time creating a
        very large bookmarks menu, so I cached this one NSFont object.

        * Misc.subproj/WebStringTruncator.m:
        (defaultMenuFont):
        new function, caches the font used when no font is specified
        (+[WebStringTruncator centerTruncateString:toWidth:]):
        call new function

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7929 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/ChangeLog
WebKit/Misc.subproj/WebStringTruncator.m

index 348d282b8a12d99ba131490aa4370e0d011fd632..247fad483f71cfa8571850c3fe1af6022b018f22 100644 (file)
@@ -1,3 +1,16 @@
+2004-11-02  John Sullivan  <sullivan@apple.com>
+
+        Reviewed by Hyatt.
+        
+        - [NSFont menuFontOfSize:], called from WebStringTruncator, was taking > 9% of the time creating a 
+        very large bookmarks menu, so I cached this one NSFont object.
+
+        * Misc.subproj/WebStringTruncator.m:
+        (defaultMenuFont):
+        new function, caches the font used when no font is specified
+        (+[WebStringTruncator centerTruncateString:toWidth:]):
+        call new function
+
 2004-11-02  Ken Kocienda  <kocienda@apple.com>
 
         Reviewed by Hyatt
index ad25fd7854541285df571f3fe3eee17909485cd4..fac826697d2dd7104ae1940342153cfdd38469a9 100644 (file)
@@ -170,9 +170,18 @@ static NSString *truncateString(NSString *string, float maxWidth, NSFont *font,
 
 @implementation WebStringTruncator
 
+static NSFont *defaultMenuFont(void)
+{
+    static NSFont *defaultMenuFont = nil;
+    if (defaultMenuFont == nil) {
+        defaultMenuFont = [[NSFont menuFontOfSize:0] retain];
+    }
+    return defaultMenuFont;
+}
+
 + (NSString *)centerTruncateString:(NSString *)string toWidth:(float)maxWidth
 {
-    return truncateString(string, maxWidth, [NSFont menuFontOfSize:0], centerTruncateToBuffer);
+    return truncateString(string, maxWidth, defaultMenuFont(), centerTruncateToBuffer);
 }
 
 + (NSString *)centerTruncateString:(NSString *)string toWidth:(float)maxWidth withFont:(NSFont *)font