Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-100236

Add Latin1 case-insensitive Boyer-Moore searcher

    XMLWordPrintable

Details

    • Task
    • Resolution: Fixed
    • P2: Important
    • None
    • None
    • None
    • 8
    • 15368fb31b (qt/qtbase/dev) 15368fb31b (qt/tqtc-qtbase/dev), 3fedcd4e4 (dev), f46bcad99 (dev), d83aabad0 (dev), 41824a02c (dev)
    • Team B Foundation Sprint 55, Foundation Sprint 62, Foundation Sprint 63, Foundation Sprint 64, Foundation Sprint 65, Foundation Sprint 66, Foundation Sprint 67, Foundation Sprint 68, Foundation Sprint 69, Foundation Sprint 70, Foundation Sprint 71, Foundation Sprint 72, Foundation Sprint 73, Foundation Sprint 74, Foundation Sprint 75, Foundation Sprint 76, Foundation Sprint 77, Foundation Sprint 89, Foundation Sprint 90

    Description

      We currently use std::boyer_moore_searcher for that, but there are two problems with that:

      1. Microsoft's STL, until quite recently, had a bug in their implementation: https://github.com/microsoft/STL/pull/724
      2. AppleClang's libc++ doesn't include it, yet, and our fall-back of converting needle and haystack to UTF-16 and doing the search in UTF-16 space is unacceptable

      We can't add a CS argument to QByteArrayMatcher, since we want to get rid of string-ish API for QByteArray, so I guess we'll just copy the code and use the latin1lower table in qstring.cpp has the hash function.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              oyheskes Øystein Heskestad
              mmutz Marc Mutz
              Vladimir Minenko Vladimir Minenko
              Alex Blasche Alex Blasche
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes