[webkit-changes] cvs commit: WebCore/kwq KWQFontFamily.h KWQFontFamily.mm

Darin darin at opensource.apple.com
Tue Nov 29 09:22:17 PST 2005


darin       05/11/29 09:22:17

  Modified:    .        ChangeLog
               kwq      KWQFontFamily.h KWQFontFamily.mm
  Log:
          Reviewed by Eric.
  
          - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5681
            font family management can be faster by avoiding NSString/autorelease
  
          * kwq/KWQFontFamily.h: Replace _NSFamily with _CFFamily.
          * kwq/KWQFontFamily.mm:
          (KWQFontFamily::KWQFontFamily): Ditto.
          (KWQFontFamily::operator=): Ditto.
          (KWQFontFamily::getNSFamily): More of the same.
          (KWQFontFamily::setFamily): Ditto.
  
  Revision  Changes    Path
  1.425     +14 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.424
  retrieving revision 1.425
  diff -u -r1.424 -r1.425
  --- ChangeLog	29 Nov 2005 17:17:27 -0000	1.424
  +++ ChangeLog	29 Nov 2005 17:22:12 -0000	1.425
  @@ -1,5 +1,19 @@
   2005-11-29  Darin Adler  <darin at apple.com>
   
  +        Reviewed by Eric.
  +
  +        - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5681
  +          font family management can be faster by avoiding NSString/autorelease
  +
  +        * kwq/KWQFontFamily.h: Replace _NSFamily with _CFFamily.
  +        * kwq/KWQFontFamily.mm:
  +        (KWQFontFamily::KWQFontFamily): Ditto.
  +        (KWQFontFamily::operator=): Ditto.
  +        (KWQFontFamily::getNSFamily): More of the same.
  +        (KWQFontFamily::setFamily): Ditto.
  +
  +2005-11-29  Darin Adler  <darin at apple.com>
  +
           Reviewed by Geoff.
   
           - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5679
  
  
  
  1.7       +1 -1      WebCore/kwq/KWQFontFamily.h
  
  Index: KWQFontFamily.h
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQFontFamily.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- KWQFontFamily.h	3 Oct 2005 21:13:03 -0000	1.6
  +++ KWQFontFamily.h	29 Nov 2005 17:22:17 -0000	1.7
  @@ -69,7 +69,7 @@
       DOM::AtomicString _family;
       KWQFontFamily *_next;
       int _refCnt;
  -    mutable NSString *_NSFamily;
  +    mutable CFStringRef _CFFamily;
   };
   
   
  
  
  
  1.7       +12 -11    WebCore/kwq/KWQFontFamily.mm
  
  Index: KWQFontFamily.mm
  ===================================================================
  RCS file: /cvs/root/WebCore/kwq/KWQFontFamily.mm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- KWQFontFamily.mm	3 Oct 2005 21:13:03 -0000	1.6
  +++ KWQFontFamily.mm	29 Nov 2005 17:22:17 -0000	1.7
  @@ -33,7 +33,7 @@
   KWQFontFamily::KWQFontFamily()
       : _next(0)
       , _refCnt(0)
  -    , _NSFamily(0)
  +    , _CFFamily(0)
   {
   }
   
  @@ -41,7 +41,7 @@
       : _family(other._family)
       , _next(other._next)
       , _refCnt(0)
  -    , _NSFamily(other._NSFamily)
  +    , _CFFamily(other._CFFamily)
   {
       if (_next)
           _next->ref();
  @@ -55,7 +55,7 @@
           _next->deref();
       _family = other._family;
       _next = other._next;
  -    _NSFamily = other._NSFamily;
  +    _CFFamily = other._CFFamily;
       return *this;
   }
   
  @@ -74,29 +74,30 @@
   
   NSString *KWQFontFamily::getNSFamily() const
   {
  -    if (!_NSFamily) {
  +    if (!_CFFamily) {
           if (_family.isEmpty())
  -            _NSFamily = @"";
  +            _CFFamily = CFSTR("");
           else {
               // Use an immutable copy of the name, but keep a set of
               // all family names so we don't end up with too many objects.
               static CFMutableDictionaryRef families;
               if (families == NULL)
                   families = CFDictionaryCreateMutable(NULL, 0, &CFDictionaryFamilyKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
  -            _NSFamily = (NSString *)CFDictionaryGetValue(families, _family.impl());
  -            if (!_NSFamily) {
  -                _NSFamily = [NSString stringWithCharacters:(const unichar *)_family.unicode() length:_family.length()];
  -                CFDictionarySetValue(families, _family.impl(), _NSFamily);
  +            _CFFamily = (CFStringRef)CFDictionaryGetValue(families, _family.impl());
  +            if (!_CFFamily) {
  +                _CFFamily = CFStringCreateWithCharacters(0, (const UniChar *)_family.unicode(), _family.length());
  +                CFDictionarySetValue(families, _family.impl(), _CFFamily);
  +                CFRelease(_CFFamily);
               }
           }
       }
  -    return _NSFamily;
  +    return (NSString *)_CFFamily;
   }
   
   void KWQFontFamily::setFamily(const AtomicString &family)
   {
       _family = family;
  -    _NSFamily = nil;
  +    _CFFamily = 0;
   }
   
   bool KWQFontFamily::operator==(const KWQFontFamily &compareFontFamily) const
  
  
  



More information about the webkit-changes mailing list