Changeset 80738 in webkit for trunk/Source/JavaScriptCore/jit/JIT.cpp
- Timestamp:
- Mar 10, 2011, 11:27:49 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JIT.cpp
r78174 r80738 568 568 for (unsigned i = 0; i < m_codeBlock->numberOfCallLinkInfos(); ++i) { 569 569 CallLinkInfo& info = m_codeBlock->callLinkInfo(i); 570 info.ownerCodeBlock = m_codeBlock;571 570 info.callReturnLocation = patchBuffer.locationOfNearCall(m_callStructureStubCompilationInfo[i].callReturnLocation); 572 571 info.hotPathBegin = patchBuffer.locationOf(m_callStructureStubCompilationInfo[i].hotPathBegin); … … 589 588 590 589 #if ENABLE(JIT_OPTIMIZE_CALL) 591 void JIT::unlinkCallOrConstruct(CallLinkInfo* callLinkInfo)592 {593 // When the JSFunction is deleted the pointer embedded in the instruction stream will no longer be valid594 // (and, if a new JSFunction happened to be constructed at the same location, we could get a false positive595 // match). Reset the check so it no longer matches.596 RepatchBuffer repatchBuffer(callLinkInfo->ownerCodeBlock);597 #if USE(JSVALUE32_64)598 repatchBuffer.repatch(callLinkInfo->hotPathBegin, 0);599 #else600 repatchBuffer.repatch(callLinkInfo->hotPathBegin, JSValue::encode(JSValue()));601 #endif602 }603 590 604 591 void JIT::linkCall(JSFunction* callee, CodeBlock* callerCodeBlock, CodeBlock* calleeCodeBlock, JIT::CodePtr code, CallLinkInfo* callLinkInfo, int callerArgCount, JSGlobalData* globalData) … … 612 599 613 600 if (calleeCodeBlock) 614 calleeCodeBlock->addCaller( callLinkInfo);601 calleeCodeBlock->addCaller(*globalData, callLinkInfo, callee); 615 602 616 603 repatchBuffer.repatch(callLinkInfo->hotPathBegin, callee); … … 632 619 633 620 if (calleeCodeBlock) 634 calleeCodeBlock->addCaller( callLinkInfo);621 calleeCodeBlock->addCaller(*globalData, callLinkInfo, callee); 635 622 636 623 repatchBuffer.repatch(callLinkInfo->hotPathBegin, callee);
Note:
See TracChangeset
for help on using the changeset viewer.