Changeset 148259 in webkit


Ignore:
Timestamp:
Apr 11, 2013 8:42:46 PM (11 years ago)
Author:
benjamin@webkit.org
Message:

Merge CharacterClassTable into CharacterClass
https://bugs.webkit.org/show_bug.cgi?id=114409

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-04-11
Reviewed by Darin Adler.

CharacterClassTable is only a pointer and a boolean.
It is a little overkill to make a separate allocation
for that.

  • create_regex_tables:
  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::matchCharacterClass):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::CharacterClassConstructor::charClass):

  • yarr/YarrPattern.h:

(CharacterClass):
(JSC::Yarr::CharacterClass::CharacterClass):

Location:
trunk/Source/JavaScriptCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r148207 r148259  
     12013-04-11  Benjamin Poulain  <bpoulain@apple.com>
     2
     3        Merge CharacterClassTable into CharacterClass
     4        https://bugs.webkit.org/show_bug.cgi?id=114409
     5
     6        Reviewed by Darin Adler.
     7
     8        CharacterClassTable is only a pointer and a boolean.
     9        It is a little overkill to make a separate allocation
     10        for that.
     11
     12        * create_regex_tables:
     13        * yarr/YarrJIT.cpp:
     14        (JSC::Yarr::YarrGenerator::matchCharacterClass):
     15        * yarr/YarrPattern.cpp:
     16        (JSC::Yarr::CharacterClassConstructor::charClass):
     17        * yarr/YarrPattern.h:
     18        (CharacterClass):
     19        (JSC::Yarr::CharacterClass::CharacterClass):
     20
    1212013-04-11  Michael Saboff  <msaboff@apple.com>
    222
  • trunk/Source/JavaScriptCore/create_regex_tables

    r83860 r148259  
    1 # Copyright (C) 2010 Apple Inc. All rights reserved.
     1# Copyright (C) 2010, 2013 Apple Inc. All rights reserved.
    22#
    33# Redistribution and use in source and binary forms, with or without
     
    9191    if emitTables and classes["UseTable"]:
    9292        if "Inverse" in classes:
    93             function += ("    CharacterClass* characterClass = new CharacterClass(CharacterClassTable::create(_%sData, true));\n" % (classes["Inverse"]))
     93            function += ("    CharacterClass* characterClass = new CharacterClass(_%sData, true);\n" % (classes["Inverse"]))
    9494        else:
    95             function += ("    CharacterClass* characterClass = new CharacterClass(CharacterClassTable::create(_%sData, false));\n" % (name))
     95            function += ("    CharacterClass* characterClass = new CharacterClass(_%sData, false);\n" % (name))
    9696    else:
    97         function += ("    CharacterClass* characterClass = new CharacterClass(0);\n")
     97        function += ("    CharacterClass* characterClass = new CharacterClass;\n")
    9898    for (min, max) in ranges:
    9999        if (min == max):
  • trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp

    r144083 r148259  
    11/*
    2  * Copyright (C) 2009 Apple Inc. All rights reserved.
     2 * Copyright (C) 2009, 2013 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    180180    {
    181181        if (charClass->m_table) {
    182             ExtendedAddress tableEntry(character, reinterpret_cast<intptr_t>(charClass->m_table->m_table));
    183             matchDest.append(branchTest8(charClass->m_table->m_inverted ? Zero : NonZero, tableEntry));
     182            ExtendedAddress tableEntry(character, reinterpret_cast<intptr_t>(charClass->m_table));
     183            matchDest.append(branchTest8(charClass->m_tableInverted ? Zero : NonZero, tableEntry));
    184184            return;
    185185        }
  • trunk/Source/JavaScriptCore/yarr/YarrPattern.cpp

    r143018 r148259  
    11/*
    2  * Copyright (C) 2009 Apple Inc. All rights reserved.
     2 * Copyright (C) 2009, 2013 Apple Inc. All rights reserved.
    33 * Copyright (C) 2010 Peter Varga (pvarga@inf.u-szeged.hu), University of Szeged
    44 *
     
    178178    PassOwnPtr<CharacterClass> charClass()
    179179    {
    180         OwnPtr<CharacterClass> characterClass = adoptPtr(new CharacterClass(0));
     180        OwnPtr<CharacterClass> characterClass = adoptPtr(new CharacterClass);
    181181
    182182        characterClass->m_matches.swap(m_matches);
  • trunk/Source/JavaScriptCore/yarr/YarrPattern.h

    r143018 r148259  
    11/*
    2  * Copyright (C) 2009 Apple Inc. All rights reserved.
     2 * Copyright (C) 2009, 2013 Apple Inc. All rights reserved.
    33 * Copyright (C) 2010 Peter Varga (pvarga@inf.u-szeged.hu), University of Szeged
    44 *
     
    5151};
    5252
    53 struct CharacterClassTable : RefCounted<CharacterClassTable> {
    54     const char* m_table;
    55     bool m_inverted;
    56     static PassRefPtr<CharacterClassTable> create(const char* table, bool inverted)
    57     {
    58         return adoptRef(new CharacterClassTable(table, inverted));
    59     }
    60 
    61 private:
    62     CharacterClassTable(const char* table, bool inverted)
    63         : m_table(table)
    64         , m_inverted(inverted)
    65     {
    66     }
    67 };
    68 
    6953struct CharacterClass {
    7054    WTF_MAKE_FAST_ALLOCATED;
    7155public:
    7256    // All CharacterClass instances have to have the full set of matches and ranges,
    73     // they may have an optional table for faster lookups (which must match the
     57    // they may have an optional m_table for faster lookups (which must match the
    7458    // specified matches and ranges)
    75     CharacterClass(PassRefPtr<CharacterClassTable> table)
     59    CharacterClass()
     60        : m_table(0)
     61    {
     62    }
     63    CharacterClass(const char* table, bool inverted)
    7664        : m_table(table)
     65        , m_tableInverted(inverted)
    7766    {
    7867    }
     
    8170    Vector<UChar> m_matchesUnicode;
    8271    Vector<CharacterRange> m_rangesUnicode;
    83     RefPtr<CharacterClassTable> m_table;
     72
     73    const char* m_table;
     74    bool m_tableInverted;
    8475};
    8576
Note: See TracChangeset for help on using the changeset viewer.