OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <iomanip> | 5 #include <iomanip> |
6 #include <sstream> | 6 #include <sstream> |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
(...skipping 10745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10756 Object* cell = rinfo->target_cell(); | 10756 Object* cell = rinfo->target_cell(); |
10757 Object* old_cell = cell; | 10757 Object* old_cell = cell; |
10758 VisitPointer(&cell); | 10758 VisitPointer(&cell); |
10759 if (cell != old_cell) { | 10759 if (cell != old_cell) { |
10760 rinfo->set_target_cell(reinterpret_cast<Cell*>(cell)); | 10760 rinfo->set_target_cell(reinterpret_cast<Cell*>(cell)); |
10761 } | 10761 } |
10762 } | 10762 } |
10763 | 10763 |
10764 | 10764 |
10765 void ObjectVisitor::VisitDebugTarget(RelocInfo* rinfo) { | 10765 void ObjectVisitor::VisitDebugTarget(RelocInfo* rinfo) { |
10766 DCHECK((RelocInfo::IsJSReturn(rinfo->rmode()) && | 10766 DCHECK(RelocInfo::IsDebugBreakSlot(rinfo->rmode()) && |
10767 rinfo->IsPatchedReturnSequence()) || | 10767 rinfo->IsPatchedDebugBreakSlotSequence()); |
10768 (RelocInfo::IsDebugBreakSlot(rinfo->rmode()) && | 10768 Object* target = Code::GetCodeFromTargetAddress(rinfo->debug_call_address()); |
10769 rinfo->IsPatchedDebugBreakSlotSequence())); | |
10770 Object* target = Code::GetCodeFromTargetAddress(rinfo->call_address()); | |
10771 Object* old_target = target; | 10769 Object* old_target = target; |
10772 VisitPointer(&target); | 10770 VisitPointer(&target); |
10773 CHECK_EQ(target, old_target); // VisitPointer doesn't change Code* *target. | 10771 CHECK_EQ(target, old_target); // VisitPointer doesn't change Code* *target. |
10774 } | 10772 } |
10775 | 10773 |
10776 | 10774 |
10777 void ObjectVisitor::VisitEmbeddedPointer(RelocInfo* rinfo) { | 10775 void ObjectVisitor::VisitEmbeddedPointer(RelocInfo* rinfo) { |
10778 DCHECK(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT); | 10776 DCHECK(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT); |
10779 Object* p = rinfo->target_object(); | 10777 Object* p = rinfo->target_object(); |
10780 VisitPointer(&p); | 10778 VisitPointer(&p); |
(...skipping 5339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
16120 Handle<Object> new_value) { | 16118 Handle<Object> new_value) { |
16121 if (cell->value() != *new_value) { | 16119 if (cell->value() != *new_value) { |
16122 cell->set_value(*new_value); | 16120 cell->set_value(*new_value); |
16123 Isolate* isolate = cell->GetIsolate(); | 16121 Isolate* isolate = cell->GetIsolate(); |
16124 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 16122 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
16125 isolate, DependentCode::kPropertyCellChangedGroup); | 16123 isolate, DependentCode::kPropertyCellChangedGroup); |
16126 } | 16124 } |
16127 } | 16125 } |
16128 } // namespace internal | 16126 } // namespace internal |
16129 } // namespace v8 | 16127 } // namespace v8 |
OLD | NEW |