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

Side by Side Diff: src/heap/objects-visiting-inl.h

Issue 1314953004: [interpreter] Add constant_pool() to BytecodeArray. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@int_args
Patch Set: Fix test flag. Created 5 years, 3 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
« no previous file with comments | « src/heap/objects-visiting.cc ('k') | src/heap/store-buffer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #ifndef V8_OBJECTS_VISITING_INL_H_ 5 #ifndef V8_OBJECTS_VISITING_INL_H_
6 #define V8_OBJECTS_VISITING_INL_H_ 6 #define V8_OBJECTS_VISITING_INL_H_
7 7
8 #include "src/heap/objects-visiting.h" 8 #include "src/heap/objects-visiting.h"
9 #include "src/ic/ic-state.h" 9 #include "src/ic/ic-state.h"
10 #include "src/macro-assembler.h" 10 #include "src/macro-assembler.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 HeapObject* object) { 119 HeapObject* object) {
120 VisitPointers( 120 VisitPointers(
121 map->GetHeap(), object, 121 map->GetHeap(), object,
122 HeapObject::RawField(object, JSDataView::BodyDescriptor::kStartOffset), 122 HeapObject::RawField(object, JSDataView::BodyDescriptor::kStartOffset),
123 HeapObject::RawField(object, JSDataView::kSizeWithInternalFields)); 123 HeapObject::RawField(object, JSDataView::kSizeWithInternalFields));
124 return JSDataView::kSizeWithInternalFields; 124 return JSDataView::kSizeWithInternalFields;
125 } 125 }
126 126
127 127
128 template <typename StaticVisitor> 128 template <typename StaticVisitor>
129 int StaticNewSpaceVisitor<StaticVisitor>::VisitBytecodeArray(
130 Map* map, HeapObject* object) {
131 VisitPointers(
132 map->GetHeap(), object,
133 HeapObject::RawField(object, BytecodeArray::kConstantPoolOffset),
134 HeapObject::RawField(object, BytecodeArray::kHeaderSize));
135 return reinterpret_cast<BytecodeArray*>(object)->BytecodeArraySize();
136 }
137
138
139 template <typename StaticVisitor>
129 void StaticMarkingVisitor<StaticVisitor>::Initialize() { 140 void StaticMarkingVisitor<StaticVisitor>::Initialize() {
130 table_.Register(kVisitShortcutCandidate, 141 table_.Register(kVisitShortcutCandidate,
131 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor, 142 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor,
132 void>::Visit); 143 void>::Visit);
133 144
134 table_.Register(kVisitConsString, 145 table_.Register(kVisitConsString,
135 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor, 146 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor,
136 void>::Visit); 147 void>::Visit);
137 148
138 table_.Register(kVisitSlicedString, 149 table_.Register(kVisitSlicedString,
(...skipping 11 matching lines...) Expand all
150 table_.Register(kVisitFixedTypedArray, &DataObjectVisitor::Visit); 161 table_.Register(kVisitFixedTypedArray, &DataObjectVisitor::Visit);
151 162
152 table_.Register(kVisitFixedFloat64Array, &DataObjectVisitor::Visit); 163 table_.Register(kVisitFixedFloat64Array, &DataObjectVisitor::Visit);
153 164
154 table_.Register(kVisitNativeContext, &VisitNativeContext); 165 table_.Register(kVisitNativeContext, &VisitNativeContext);
155 166
156 table_.Register(kVisitAllocationSite, &VisitAllocationSite); 167 table_.Register(kVisitAllocationSite, &VisitAllocationSite);
157 168
158 table_.Register(kVisitByteArray, &DataObjectVisitor::Visit); 169 table_.Register(kVisitByteArray, &DataObjectVisitor::Visit);
159 170
160 table_.Register(kVisitBytecodeArray, &DataObjectVisitor::Visit); 171 table_.Register(kVisitBytecodeArray, &VisitBytecodeArray);
161 172
162 table_.Register(kVisitFreeSpace, &DataObjectVisitor::Visit); 173 table_.Register(kVisitFreeSpace, &DataObjectVisitor::Visit);
163 174
164 table_.Register(kVisitSeqOneByteString, &DataObjectVisitor::Visit); 175 table_.Register(kVisitSeqOneByteString, &DataObjectVisitor::Visit);
165 176
166 table_.Register(kVisitSeqTwoByteString, &DataObjectVisitor::Visit); 177 table_.Register(kVisitSeqTwoByteString, &DataObjectVisitor::Visit);
167 178
168 table_.Register(kVisitJSWeakCollection, &VisitWeakCollection); 179 table_.Register(kVisitJSWeakCollection, &VisitWeakCollection);
169 180
170 table_.Register( 181 table_.Register(
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 void StaticMarkingVisitor<StaticVisitor>::VisitJSDataView(Map* map, 553 void StaticMarkingVisitor<StaticVisitor>::VisitJSDataView(Map* map,
543 HeapObject* object) { 554 HeapObject* object) {
544 StaticVisitor::VisitPointers( 555 StaticVisitor::VisitPointers(
545 map->GetHeap(), object, 556 map->GetHeap(), object,
546 HeapObject::RawField(object, JSDataView::BodyDescriptor::kStartOffset), 557 HeapObject::RawField(object, JSDataView::BodyDescriptor::kStartOffset),
547 HeapObject::RawField(object, JSDataView::kSizeWithInternalFields)); 558 HeapObject::RawField(object, JSDataView::kSizeWithInternalFields));
548 } 559 }
549 560
550 561
551 template <typename StaticVisitor> 562 template <typename StaticVisitor>
563 void StaticMarkingVisitor<StaticVisitor>::VisitBytecodeArray(
564 Map* map, HeapObject* object) {
565 StaticVisitor::VisitPointers(
566 map->GetHeap(), object,
567 HeapObject::RawField(object, BytecodeArray::kConstantPoolOffset),
568 HeapObject::RawField(object, BytecodeArray::kHeaderSize));
569 }
570
571
572 template <typename StaticVisitor>
552 void StaticMarkingVisitor<StaticVisitor>::MarkMapContents(Heap* heap, 573 void StaticMarkingVisitor<StaticVisitor>::MarkMapContents(Heap* heap,
553 Map* map) { 574 Map* map) {
554 Object* raw_transitions = map->raw_transitions(); 575 Object* raw_transitions = map->raw_transitions();
555 if (TransitionArray::IsFullTransitionArray(raw_transitions)) { 576 if (TransitionArray::IsFullTransitionArray(raw_transitions)) {
556 MarkTransitionArray(heap, TransitionArray::cast(raw_transitions)); 577 MarkTransitionArray(heap, TransitionArray::cast(raw_transitions));
557 } 578 }
558 579
559 // Since descriptor arrays are potentially shared, ensure that only the 580 // Since descriptor arrays are potentially shared, ensure that only the
560 // descriptors that belong to this map are marked. The first time a non-empty 581 // descriptors that belong to this map are marked. The first time a non-empty
561 // descriptor array is marked, its header is also visited. The slot holding 582 // descriptor array is marked, its header is also visited. The slot holding
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
871 892
872 RelocIterator it(this, mode_mask); 893 RelocIterator it(this, mode_mask);
873 for (; !it.done(); it.next()) { 894 for (; !it.done(); it.next()) {
874 it.rinfo()->template Visit<StaticVisitor>(heap); 895 it.rinfo()->template Visit<StaticVisitor>(heap);
875 } 896 }
876 } 897 }
877 } 898 }
878 } // namespace v8::internal 899 } // namespace v8::internal
879 900
880 #endif // V8_OBJECTS_VISITING_INL_H_ 901 #endif // V8_OBJECTS_VISITING_INL_H_
OLDNEW
« no previous file with comments | « src/heap/objects-visiting.cc ('k') | src/heap/store-buffer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698