Changeset 249115 in webkit


Ignore:
Timestamp:
Aug 26, 2019 1:26:50 PM (5 years ago)
Author:
ddkilzer@apple.com
Message:

Don't compute upconverted characters twice in buildQuery() in DataDetection.mm
<https://webkit.org/b/201144>
<rdar://problem/54689399>

Reviewed by Brent Fulgham.

Source/WebCore:

  • editing/cocoa/DataDetection.mm:

(WebCore::buildQuery): Extract common variables to prevent double
conversion for 8-bit strings.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add

DataDetectorsTestIOS.mm to the project.

  • TestWebKitAPI/Tests/ios/DataDetectorsTestIOS.mm: Add a new

test for Data Detectors for phone numbers.

Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r249110 r249115  
     12019-08-26  David Kilzer  <ddkilzer@apple.com>
     2
     3        Don't compute upconverted characters twice in buildQuery() in DataDetection.mm
     4        <https://webkit.org/b/201144>
     5        <rdar://problem/54689399>
     6
     7        Reviewed by Brent Fulgham.
     8
     9        * editing/cocoa/DataDetection.mm:
     10        (WebCore::buildQuery): Extract common variables to prevent double
     11        conversion for 8-bit strings.
     12
    1132019-08-26  Brent Fulgham  <bfulgham@apple.com>
    214
  • trunk/Source/WebCore/editing/cocoa/DataDetection.mm

    r246490 r249115  
    364364    // For each fragment the iterator increment is stored as metadata.
    365365    for (TextIterator iterator(contextRange); !iterator.atEnd(); iterator.advance(), iteratorCount++) {
    366         size_t currentTextLength = iterator.text().length();
     366        StringView currentText = iterator.text();
     367        size_t currentTextLength = currentText.length();
    367368        if (!currentTextLength) {
    368369            softLink_DataDetectorsCore_DDScanQueryAddSeparator(scanQuery, DDTextCoalescingTypeHardBreak);
     
    372373        }
    373374        // Test for white space nodes, we're coalescing them.
    374         const UniChar* currentCharPtr = iterator.text().upconvertedCharacters();
     375        auto currentTextUpconvertedCharacters = currentText.upconvertedCharacters();
     376        const UniChar* currentCharPtr = currentTextUpconvertedCharacters.get();
    375377       
    376378        bool containsOnlyWhiteSpace = true;
     
    411413        }
    412414       
    413         RetainPtr<CFStringRef> currentText = adoptCF(CFStringCreateWithCharacters(kCFAllocatorDefault, iterator.text().upconvertedCharacters(), iterator.text().length()));
    414         softLink_DataDetectorsCore_DDScanQueryAddTextFragment(scanQuery, currentText.get(), CFRangeMake(0, currentTextLength), (void *)iteratorCount, (DDTextFragmentMode)0, DDTextCoalescingTypeNone);
     415        auto currentTextCFString = adoptCF(CFStringCreateWithCharacters(kCFAllocatorDefault, currentTextUpconvertedCharacters.get(), currentTextLength));
     416        softLink_DataDetectorsCore_DDScanQueryAddTextFragment(scanQuery, currentTextCFString.get(), CFRangeMake(0, currentTextLength), (void *)iteratorCount, (DDTextFragmentMode)0, DDTextCoalescingTypeNone);
    415417        fragmentCount++;
    416418    }
  • trunk/Tools/ChangeLog

    r249112 r249115  
     12019-08-26  David Kilzer  <ddkilzer@apple.com>
     2
     3        Don't compute upconverted characters twice in buildQuery() in DataDetection.mm
     4        <https://webkit.org/b/201144>
     5        <rdar://problem/54689399>
     6
     7        Reviewed by Brent Fulgham.
     8
     9        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add
     10        DataDetectorsTestIOS.mm to the project.
     11        * TestWebKitAPI/Tests/ios/DataDetectorsTestIOS.mm: Add a new
     12        test for Data Detectors for phone numbers.
     13
    1142019-08-26  Wenson Hsieh  <wenson_hsieh@apple.com>
    215
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r249035 r249115  
    212212                414AD6862285D1C000777F2D /* StorageQuota.mm in Sources */ = {isa = PBXBuildFile; fileRef = 414AD6852285D1B000777F2D /* StorageQuota.mm */; };
    213213                41882F0321010C0D002FF288 /* ProcessPreWarming.mm in Sources */ = {isa = PBXBuildFile; fileRef = 41882F0221010A70002FF288 /* ProcessPreWarming.mm */; };
     214                44077BB123144B5000179E2D /* DataDetectorsTestIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 44077BB0231449D200179E2D /* DataDetectorsTestIOS.mm */; };
    214215                4433A396208044140091ED57 /* SynchronousTimeoutTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4433A395208044130091ED57 /* SynchronousTimeoutTests.mm */; };
    215216                44817A2F1F0486BF00003810 /* WKRequestActivatedElementInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 44817A2E1F0486BF00003810 /* WKRequestActivatedElementInfo.mm */; };
     
    16851686                41882F0221010A70002FF288 /* ProcessPreWarming.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ProcessPreWarming.mm; sourceTree = "<group>"; };
    16861687                41973B5C1AF22875006C7B36 /* SharedBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedBuffer.cpp; sourceTree = "<group>"; };
     1688                44077BB0231449D200179E2D /* DataDetectorsTestIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DataDetectorsTestIOS.mm; sourceTree = "<group>"; };
    16871689                442BBF681C91CAD90017087F /* RefLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RefLogger.cpp; sourceTree = "<group>"; };
    16881690                4433A395208044130091ED57 /* SynchronousTimeoutTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SynchronousTimeoutTests.mm; sourceTree = "<group>"; };
     
    30483050                                F45B63FC1F19D410009D38B9 /* ActionSheetTests.mm */,
    30493051                                F42D634322A1729F00D2FB3A /* AutocorrectionTestsIOS.mm */,
     3052                                44077BB0231449D200179E2D /* DataDetectorsTestIOS.mm */,
    30503053                                F4D4F3B71E4E36E400BB2767 /* DragAndDropTestsIOS.mm */,
    30513054                                F4BC0B132146C849002A0478 /* FocusPreservationTests.mm */,
     
    44234426                                751B05D61F8EAC410028A09E /* DatabaseTrackerTest.mm in Sources */,
    44244427                                2DC4CF771D2D9DD800ECCC94 /* DataDetection.mm in Sources */,
     4428                                44077BB123144B5000179E2D /* DataDetectorsTestIOS.mm in Sources */,
    44254429                                9BAD7F3E22690F2000F8DA66 /* DeallocWebViewInEventListener.mm in Sources */,
    44264430                                518EE51D20A78D3600E024F3 /* DecidePolicyForNavigationAction.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.