• esprehn's avatar
    Use StringView for String and AtomicString operator==. · e827c1a7
    esprehn authored
    This allows the compiler to compute the length of literal strings that
    are compared and then we can early abort comparing if the length is
    different.
    
    This does introduce a strlen call for non-literal strings, which we
    have very few of today.
    
    This patch fixes the web idl enum checking loop to use WTF::equal to
    avoid the strlen since that seemed like an easy way to remove lots of strlen
    calls. We can make other callers use a similar approach in the future if
    if we see strlen on profiles.
    
    By code auditing (with code search method finding) I noticed a few other
    places will now call strlen (ex. iframe sandbox and permissions attribute
    parsing) but this patch opts not to convert all places we now call strlen and
    instead go for the simple path of fixing those if we run into problems. This
    is a similar trade off to code elsewhere in Chromium that uses
    base::StringPiece which also puts a strlen call for non-literal strings.
    
    I also took this as an opportunity to remove the operator== methods which aren't
    used for things like LChar* (strangely UChar* was missing) and Vector<char>.
    
    BUG=678266
    
    Review-Url: https://codereview.chromium.org/2614123002
    Cr-Commit-Position: refs/heads/master@{#441914}
    e827c1a7
AtomicString.h 10.8 KB