Ignore:
Timestamp:
Jan 18, 2010, 4:14:49 AM (15 years ago)
Author:
Csaba Osztrogonác
Message:

Rubber-stamped by Gustavo Noronha Silva.

Rolling out r53391 and r53392 because of random crashes on buildbots.
https://bugs.webkit.org/show_bug.cgi?id=33731

  • bytecode/CodeBlock.h:

(JSC::CallLinkInfo::seenOnce):
(JSC::CallLinkInfo::setSeen):
(JSC::MethodCallLinkInfo::MethodCallLinkInfo):
(JSC::MethodCallLinkInfo::seenOnce):
(JSC::MethodCallLinkInfo::setSeen):

  • jit/JIT.cpp:

(JSC::JIT::unlinkCall):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::patchMethodCallProto):

  • runtime/UString.cpp:

(JSC::UString::spliceSubstringsWithSeparators):
(JSC::UString::replaceRange):

  • runtime/UString.h:
  • runtime/UStringImpl.cpp:

(JSC::UStringImpl::baseSharedBuffer):
(JSC::UStringImpl::sharedBuffer):
(JSC::UStringImpl::~UStringImpl):

  • runtime/UStringImpl.h:

(JSC::UntypedPtrAndBitfield::UntypedPtrAndBitfield):
(JSC::UntypedPtrAndBitfield::asPtr):
(JSC::UntypedPtrAndBitfield::operator&=):
(JSC::UntypedPtrAndBitfield::operator|=):
(JSC::UntypedPtrAndBitfield::operator&):
(JSC::UStringImpl::create):
(JSC::UStringImpl::cost):
(JSC::UStringImpl::isIdentifier):
(JSC::UStringImpl::setIsIdentifier):
(JSC::UStringImpl::ref):
(JSC::UStringImpl::deref):
(JSC::UStringImpl::checkConsistency):
(JSC::UStringImpl::UStringImpl):
(JSC::UStringImpl::bufferOwnerString):
(JSC::UStringImpl::bufferOwnership):
(JSC::UStringImpl::isStatic):

  • wtf/StringHashFunctions.h:

(WTF::stringHash):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/bytecode/CodeBlock.h

    r53391 r53400  
    111111        CodeLocationDataLabelPtr hotPathBegin;
    112112        CodeLocationNearCall hotPathOther;
    113         CodeBlock* ownerCodeBlock;
     113        PtrAndFlags<CodeBlock, HasSeenShouldRepatch> ownerCodeBlock;
    114114        CodeBlock* callee;
    115         unsigned position : 31;
    116         unsigned hasSeenShouldRepatch : 1;
     115        unsigned position;
    117116       
    118117        void setUnlinked() { callee = 0; }
     
    121120        bool seenOnce()
    122121        {
    123             return hasSeenShouldRepatch;
     122            return ownerCodeBlock.isFlagSet(hasSeenShouldRepatch);
    124123        }
    125124
    126125        void setSeen()
    127126        {
    128             hasSeenShouldRepatch = true;
    129         }
    130     };
    131 
    132 #define MethodCallLinkInfo_seenFlag ((Structure*)1)
     127            ownerCodeBlock.setFlag(hasSeenShouldRepatch);
     128        }
     129    };
    133130
    134131    struct MethodCallLinkInfo {
    135132        MethodCallLinkInfo()
    136133            : cachedStructure(0)
    137             , cachedPrototypeStructure(0)
    138134        {
    139135        }
     
    141137        bool seenOnce()
    142138        {
    143             ASSERT(!cachedStructure);
    144             return cachedPrototypeStructure;
     139            return cachedPrototypeStructure.isFlagSet(hasSeenShouldRepatch);
    145140        }
    146141
    147142        void setSeen()
    148143        {
    149             ASSERT(!cachedStructure && !cachedPrototypeStructure);
    150             // We use the values of cachedStructure & cachedPrototypeStructure to indicate the
    151             // current state.
    152             //     - In the initial state, both are null.
    153             //     - Once this transition has been taken once, cachedStructure is
    154             //       null and cachedPrototypeStructure is set to a nun-null value.
    155             //     - Once the call is linked both structures are set to non-null values.
    156             cachedPrototypeStructure = MethodCallLinkInfo_seenFlag;
     144            cachedPrototypeStructure.setFlag(hasSeenShouldRepatch);
    157145        }
    158146
     
    160148        CodeLocationDataLabelPtr structureLabel;
    161149        Structure* cachedStructure;
    162         Structure* cachedPrototypeStructure;
     150        PtrAndFlags<Structure, HasSeenShouldRepatch> cachedPrototypeStructure;
    163151    };
    164152
Note: See TracChangeset for help on using the changeset viewer.