Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(427)

Side by Side Diff: src/objects.cc

Issue 2810653002: Add a host parameter to ObjectVisitor methods. (Closed)
Patch Set: remove code Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 "src/objects.h" 5 #include "src/objects.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <iomanip> 8 #include <iomanip>
9 #include <memory> 9 #include <memory>
10 #include <sstream> 10 #include <sstream>
(...skipping 13852 matching lines...) Expand 10 before | Expand all | Expand 10 after
13863 int entry = SearchOptimizedCodeMapEntry(native_context); 13863 int entry = SearchOptimizedCodeMapEntry(native_context);
13864 if (entry != kNotFound) { 13864 if (entry != kNotFound) {
13865 FixedArray* code_map = optimized_code_map(); 13865 FixedArray* code_map = optimized_code_map();
13866 DCHECK_LE(entry + kEntryLength, code_map->length()); 13866 DCHECK_LE(entry + kEntryLength, code_map->length());
13867 WeakCell* cell = WeakCell::cast(code_map->get(entry + kCachedCodeOffset)); 13867 WeakCell* cell = WeakCell::cast(code_map->get(entry + kCachedCodeOffset));
13868 result = cell->cleared() ? nullptr : Code::cast(cell->value()); 13868 result = cell->cleared() ? nullptr : Code::cast(cell->value());
13869 } 13869 }
13870 return result; 13870 return result;
13871 } 13871 }
13872 13872
13873 13873 void ObjectVisitor::VisitCodeTarget(Code* host, RelocInfo* rinfo) {
13874 void ObjectVisitor::VisitCodeTarget(RelocInfo* rinfo) {
13875 DCHECK(RelocInfo::IsCodeTarget(rinfo->rmode())); 13874 DCHECK(RelocInfo::IsCodeTarget(rinfo->rmode()));
13876 Object* old_pointer = Code::GetCodeFromTargetAddress(rinfo->target_address()); 13875 Object* old_pointer = Code::GetCodeFromTargetAddress(rinfo->target_address());
13877 Object* new_pointer = old_pointer; 13876 Object* new_pointer = old_pointer;
13878 VisitPointer(&new_pointer); 13877 VisitPointer(host, &new_pointer);
13879 DCHECK_EQ(old_pointer, new_pointer); 13878 DCHECK_EQ(old_pointer, new_pointer);
13880 } 13879 }
13881 13880
13882 13881 void ObjectVisitor::VisitCodeAgeSequence(Code* host, RelocInfo* rinfo) {
13883 void ObjectVisitor::VisitCodeAgeSequence(RelocInfo* rinfo) {
13884 DCHECK(RelocInfo::IsCodeAgeSequence(rinfo->rmode())); 13882 DCHECK(RelocInfo::IsCodeAgeSequence(rinfo->rmode()));
13885 Object* old_pointer = rinfo->code_age_stub(); 13883 Object* old_pointer = rinfo->code_age_stub();
13886 Object* new_pointer = old_pointer; 13884 Object* new_pointer = old_pointer;
13887 if (old_pointer != nullptr) { 13885 if (old_pointer != nullptr) {
13888 VisitPointer(&new_pointer); 13886 VisitPointer(host, &new_pointer);
13889 DCHECK_EQ(old_pointer, new_pointer); 13887 DCHECK_EQ(old_pointer, new_pointer);
13890 } 13888 }
13891 } 13889 }
13892 13890
13893 13891 void ObjectVisitor::VisitCodeEntry(JSFunction* host, Address entry_address) {
13894 void ObjectVisitor::VisitCodeEntry(Address entry_address) {
13895 Object* old_pointer = Code::GetObjectFromEntryAddress(entry_address); 13892 Object* old_pointer = Code::GetObjectFromEntryAddress(entry_address);
13896 Object* new_pointer = old_pointer; 13893 Object* new_pointer = old_pointer;
13897 VisitPointer(&new_pointer); 13894 VisitPointer(host, &new_pointer);
13898 DCHECK_EQ(old_pointer, new_pointer); 13895 DCHECK_EQ(old_pointer, new_pointer);
13899 } 13896 }
13900 13897
13901 13898 void ObjectVisitor::VisitCell(Code* host, RelocInfo* rinfo) {
13902 void ObjectVisitor::VisitCell(RelocInfo* rinfo) {
13903 DCHECK(rinfo->rmode() == RelocInfo::CELL); 13899 DCHECK(rinfo->rmode() == RelocInfo::CELL);
13904 Object* old_pointer = rinfo->target_cell(); 13900 Object* old_pointer = rinfo->target_cell();
13905 Object* new_pointer = old_pointer; 13901 Object* new_pointer = old_pointer;
13906 VisitPointer(&new_pointer); 13902 VisitPointer(host, &new_pointer);
13907 DCHECK_EQ(old_pointer, new_pointer); 13903 DCHECK_EQ(old_pointer, new_pointer);
13908 } 13904 }
13909 13905
13910 13906 void ObjectVisitor::VisitDebugTarget(Code* host, RelocInfo* rinfo) {
13911 void ObjectVisitor::VisitDebugTarget(RelocInfo* rinfo) {
13912 DCHECK(RelocInfo::IsDebugBreakSlot(rinfo->rmode()) && 13907 DCHECK(RelocInfo::IsDebugBreakSlot(rinfo->rmode()) &&
13913 rinfo->IsPatchedDebugBreakSlotSequence()); 13908 rinfo->IsPatchedDebugBreakSlotSequence());
13914 Object* old_pointer = 13909 Object* old_pointer =
13915 Code::GetCodeFromTargetAddress(rinfo->debug_call_address()); 13910 Code::GetCodeFromTargetAddress(rinfo->debug_call_address());
13916 Object* new_pointer = old_pointer; 13911 Object* new_pointer = old_pointer;
13917 VisitPointer(&new_pointer); 13912 VisitPointer(host, &new_pointer);
13918 DCHECK_EQ(old_pointer, new_pointer); 13913 DCHECK_EQ(old_pointer, new_pointer);
13919 } 13914 }
13920 13915
13921 13916 void ObjectVisitor::VisitEmbeddedPointer(Code* host, RelocInfo* rinfo) {
13922 void ObjectVisitor::VisitEmbeddedPointer(RelocInfo* rinfo) {
13923 DCHECK(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT); 13917 DCHECK(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT);
13924 Object* old_pointer = rinfo->target_object(); 13918 Object* old_pointer = rinfo->target_object();
13925 Object* new_pointer = old_pointer; 13919 Object* new_pointer = old_pointer;
13926 VisitPointer(&new_pointer); 13920 VisitPointer(host, &new_pointer);
13927 DCHECK_EQ(old_pointer, new_pointer); 13921 DCHECK_EQ(old_pointer, new_pointer);
13928 } 13922 }
13929 13923
13930 13924
13931 void ObjectVisitor::VisitExternalReference(RelocInfo* rinfo) {
13932 Address old_reference = rinfo->target_external_reference();
13933 Address new_reference = old_reference;
13934 VisitExternalReference(&new_reference);
13935 DCHECK_EQ(old_reference, new_reference);
13936 }
13937
13938
13939 void Code::InvalidateRelocation() { 13925 void Code::InvalidateRelocation() {
13940 InvalidateEmbeddedObjects(); 13926 InvalidateEmbeddedObjects();
13941 set_relocation_info(GetHeap()->empty_byte_array()); 13927 set_relocation_info(GetHeap()->empty_byte_array());
13942 } 13928 }
13943 13929
13944 13930
13945 void Code::InvalidateEmbeddedObjects() { 13931 void Code::InvalidateEmbeddedObjects() {
13946 HeapObject* undefined = GetHeap()->undefined_value(); 13932 HeapObject* undefined = GetHeap()->undefined_value();
13947 Cell* undefined_cell = GetHeap()->undefined_cell(); 13933 Cell* undefined_cell = GetHeap()->undefined_cell();
13948 int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT) | 13934 int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT) |
(...skipping 6486 matching lines...) Expand 10 before | Expand all | Expand 10 after
20435 // depend on this. 20421 // depend on this.
20436 return DICTIONARY_ELEMENTS; 20422 return DICTIONARY_ELEMENTS;
20437 } 20423 }
20438 DCHECK_LE(kind, LAST_ELEMENTS_KIND); 20424 DCHECK_LE(kind, LAST_ELEMENTS_KIND);
20439 return kind; 20425 return kind;
20440 } 20426 }
20441 } 20427 }
20442 20428
20443 } // namespace internal 20429 } // namespace internal
20444 } // namespace v8 20430 } // namespace v8
OLDNEW
« src/heap/heap.cc ('K') | « src/objects.h ('k') | src/objects-body-descriptors-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698