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

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

Issue 2529113002: [heap] StaticNewSpaceVisitor: Add UNREACHABLE handlers for pre-tenured types (Closed)
Patch Set: Fix compilation Created 4 years 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.h ('k') | no next file » | 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/array-buffer-tracker.h" 8 #include "src/heap/array-buffer-tracker.h"
9 #include "src/heap/objects-visiting.h" 9 #include "src/heap/objects-visiting.h"
10 #include "src/ic/ic-state.h" 10 #include "src/ic/ic-state.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 kVisitFixedFloat64Array, 53 kVisitFixedFloat64Array,
54 &FlexibleBodyVisitor<StaticVisitor, FixedTypedArrayBase::BodyDescriptor, 54 &FlexibleBodyVisitor<StaticVisitor, FixedTypedArrayBase::BodyDescriptor,
55 int>::Visit); 55 int>::Visit);
56 56
57 table_.Register( 57 table_.Register(
58 kVisitNativeContext, 58 kVisitNativeContext,
59 &FixedBodyVisitor<StaticVisitor, Context::ScavengeBodyDescriptor, 59 &FixedBodyVisitor<StaticVisitor, Context::ScavengeBodyDescriptor,
60 int>::Visit); 60 int>::Visit);
61 61
62 table_.Register(kVisitByteArray, &VisitByteArray); 62 table_.Register(kVisitByteArray, &VisitByteArray);
63 table_.Register(kVisitBytecodeArray, &VisitBytecodeArray);
64 63
65 table_.Register( 64 table_.Register(
66 kVisitSharedFunctionInfo, 65 kVisitSharedFunctionInfo,
67 &FixedBodyVisitor<StaticVisitor, SharedFunctionInfo::BodyDescriptor, 66 &FixedBodyVisitor<StaticVisitor, SharedFunctionInfo::BodyDescriptor,
68 int>::Visit); 67 int>::Visit);
69 68
70 table_.Register(kVisitSeqOneByteString, &VisitSeqOneByteString); 69 table_.Register(kVisitSeqOneByteString, &VisitSeqOneByteString);
71 70
72 table_.Register(kVisitSeqTwoByteString, &VisitSeqTwoByteString); 71 table_.Register(kVisitSeqTwoByteString, &VisitSeqTwoByteString);
73 72
(...skipping 22 matching lines...) Expand all
96 95
97 table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSObject, 96 table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSObject,
98 kVisitJSObjectGeneric>(); 97 kVisitJSObjectGeneric>();
99 98
100 // Not using specialized Api object visitor for newspace. 99 // Not using specialized Api object visitor for newspace.
101 table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSApiObject, 100 table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSApiObject,
102 kVisitJSApiObjectGeneric>(); 101 kVisitJSApiObjectGeneric>();
103 102
104 table_.template RegisterSpecializations<StructVisitor, kVisitStruct, 103 table_.template RegisterSpecializations<StructVisitor, kVisitStruct,
105 kVisitStructGeneric>(); 104 kVisitStructGeneric>();
105
106 table_.Register(kVisitBytecodeArray, &UnreachableVisitor);
107 table_.Register(kVisitSharedFunctionInfo, &UnreachableVisitor);
106 } 108 }
107 109
108 template <typename StaticVisitor> 110 template <typename StaticVisitor>
109 int StaticNewSpaceVisitor<StaticVisitor>::VisitBytecodeArray(
110 Map* map, HeapObject* object) {
111 VisitPointers(
112 map->GetHeap(), object,
113 HeapObject::RawField(object, BytecodeArray::kConstantPoolOffset),
114 HeapObject::RawField(object, BytecodeArray::kFrameSizeOffset));
115 return reinterpret_cast<BytecodeArray*>(object)->BytecodeArraySize();
116 }
117
118
119 template <typename StaticVisitor>
120 void StaticMarkingVisitor<StaticVisitor>::Initialize() { 111 void StaticMarkingVisitor<StaticVisitor>::Initialize() {
121 table_.Register(kVisitShortcutCandidate, 112 table_.Register(kVisitShortcutCandidate,
122 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor, 113 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor,
123 void>::Visit); 114 void>::Visit);
124 115
125 table_.Register(kVisitConsString, 116 table_.Register(kVisitConsString,
126 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor, 117 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor,
127 void>::Visit); 118 void>::Visit);
128 119
129 table_.Register(kVisitSlicedString, 120 table_.Register(kVisitSlicedString,
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 typedef FlexibleBodyVisitor<StaticVisitor, JSFunction::BodyDescriptorWeakCode, 648 typedef FlexibleBodyVisitor<StaticVisitor, JSFunction::BodyDescriptorWeakCode,
658 void> JSFunctionWeakCodeBodyVisitor; 649 void> JSFunctionWeakCodeBodyVisitor;
659 JSFunctionWeakCodeBodyVisitor::Visit(map, object); 650 JSFunctionWeakCodeBodyVisitor::Visit(map, object);
660 } 651 }
661 652
662 653
663 } // namespace internal 654 } // namespace internal
664 } // namespace v8 655 } // namespace v8
665 656
666 #endif // V8_OBJECTS_VISITING_INL_H_ 657 #endif // V8_OBJECTS_VISITING_INL_H_
OLDNEW
« no previous file with comments | « src/heap/objects-visiting.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698