Changeset 58026 in webkit for trunk/JavaScriptCore/runtime


Ignore:
Timestamp:
Apr 21, 2010, 4:59:02 PM (15 years ago)
Author:
[email protected]
Message:

Rubber Stamped by Oliver Hunt.

Make SmallStrings store an array of RefPtr<StringImpl>,
instead of a direct array of StringImpls. This allows
us to remove a friend (and a layering violation) from
WTF::StringImpl, and makes it so that all StringImpls
are individually heap allocated.

  • runtime/SmallStrings.cpp:

(JSC::SmallStringsStorage::rep):
(JSC::SmallStringsStorage::SmallStringsStorage):

  • wtf/text/StringImpl.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/SmallStrings.cpp

    r56085 r58026  
    4444    SmallStringsStorage();
    4545
    46     UString::Rep* rep(unsigned char character) { return &m_reps[character]; }
     46    UString::Rep* rep(unsigned char character) { return m_reps[character].get(); }
    4747
    4848private:
    49     UString::Rep m_reps[numCharactersToStore];
     49    RefPtr<UString::Rep> m_reps[numCharactersToStore];
    5050};
    5151
     
    5656    for (unsigned i = 0; i < numCharactersToStore; ++i) {
    5757        characterBuffer[i] = i;
    58         new (&m_reps[i]) UString::Rep(&characterBuffer[i], 1, PassRefPtr<UStringImpl>(baseString));
     58        m_reps[i] = UStringImpl::create(baseString, i, 1);
    5959    }
    6060}
Note: See TracChangeset for help on using the changeset viewer.