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

Side by Side Diff: src/heap/objects-visiting.cc

Issue 1441453002: Avoid manual object's body traversal in GC. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 1 month 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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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/heap/objects-visiting.h" 5 #include "src/heap/objects-visiting.h"
6 6
7 #include "src/heap/mark-compact-inl.h" 7 #include "src/heap/mark-compact-inl.h"
8 #include "src/heap/objects-visiting-inl.h" 8 #include "src/heap/objects-visiting-inl.h"
9 9
10 namespace v8 { 10 namespace v8 {
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 case JS_VALUE_TYPE: 219 case JS_VALUE_TYPE:
220 case JS_DATE_TYPE: 220 case JS_DATE_TYPE:
221 case JS_ARRAY_TYPE: 221 case JS_ARRAY_TYPE:
222 case JS_TYPED_ARRAY_TYPE: 222 case JS_TYPED_ARRAY_TYPE:
223 case JS_DATA_VIEW_TYPE: 223 case JS_DATA_VIEW_TYPE:
224 case JS_SET_TYPE: 224 case JS_SET_TYPE:
225 case JS_MAP_TYPE: 225 case JS_MAP_TYPE:
226 case JS_SET_ITERATOR_TYPE: 226 case JS_SET_ITERATOR_TYPE:
227 case JS_MAP_ITERATOR_TYPE: 227 case JS_MAP_ITERATOR_TYPE:
228 case JS_ITERATOR_RESULT_TYPE: 228 case JS_ITERATOR_RESULT_TYPE:
229 case JS_WEAK_MAP_TYPE:
230 case JS_WEAK_SET_TYPE:
231 case JS_REGEXP_TYPE: 229 case JS_REGEXP_TYPE:
232 case JS_GLOBAL_PROXY_TYPE: 230 case JS_GLOBAL_PROXY_TYPE:
233 case JS_GLOBAL_OBJECT_TYPE: 231 case JS_GLOBAL_OBJECT_TYPE:
234 case JS_MESSAGE_OBJECT_TYPE: 232 case JS_MESSAGE_OBJECT_TYPE:
235 JSObject::BodyDescriptor::IterateBody(this, object_size, v); 233 JSObject::BodyDescriptor::IterateBody(this, object_size, v);
236 break; 234 break;
235 case JS_WEAK_MAP_TYPE:
236 case JS_WEAK_SET_TYPE:
237 JSWeakCollection::BodyDescriptor::IterateBody(this, object_size, v);
238 break;
237 case JS_ARRAY_BUFFER_TYPE: 239 case JS_ARRAY_BUFFER_TYPE:
238 JSArrayBuffer::JSArrayBufferIterateBody(this, v); 240 JSArrayBuffer::BodyDescriptor::IterateBody(this, object_size, v);
239 break; 241 break;
240 case JS_FUNCTION_TYPE: 242 case JS_FUNCTION_TYPE:
241 JSFunction::BodyDescriptor::IterateBody(this, object_size, v); 243 JSFunction::BodyDescriptor::IterateBody(this, object_size, v);
242 break; 244 break;
243 case ODDBALL_TYPE: 245 case ODDBALL_TYPE:
244 Oddball::BodyDescriptor::IterateBody(this, v); 246 Oddball::BodyDescriptor::IterateBody(this, v);
245 break; 247 break;
246 case JS_PROXY_TYPE: 248 case JS_PROXY_TYPE:
247 JSProxy::BodyDescriptor::IterateBody(this, v); 249 JSProxy::BodyDescriptor::IterateBody(this, v);
248 break; 250 break;
(...skipping 26 matching lines...) Expand all
275 break; 277 break;
276 278
277 case HEAP_NUMBER_TYPE: 279 case HEAP_NUMBER_TYPE:
278 case MUTABLE_HEAP_NUMBER_TYPE: 280 case MUTABLE_HEAP_NUMBER_TYPE:
279 case SIMD128_VALUE_TYPE: 281 case SIMD128_VALUE_TYPE:
280 case FILLER_TYPE: 282 case FILLER_TYPE:
281 case BYTE_ARRAY_TYPE: 283 case BYTE_ARRAY_TYPE:
282 case FREE_SPACE_TYPE: 284 case FREE_SPACE_TYPE:
283 break; 285 break;
284 286
285 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ 287 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
286 case FIXED_##TYPE##_ARRAY_TYPE: \ 288 case FIXED_##TYPE##_ARRAY_TYPE: \
287 reinterpret_cast<FixedTypedArrayBase*>(this) \ 289 FixedTypedArrayBase::BodyDescriptor::IterateBody(this, object_size, v); \
288 ->FixedTypedArrayBaseIterateBody(v); \
289 break; 290 break;
290 TYPED_ARRAYS(TYPED_ARRAY_CASE) 291 TYPED_ARRAYS(TYPED_ARRAY_CASE)
291 #undef TYPED_ARRAY_CASE 292 #undef TYPED_ARRAY_CASE
292 293
293 case SHARED_FUNCTION_INFO_TYPE: { 294 case SHARED_FUNCTION_INFO_TYPE: {
294 SharedFunctionInfo::BodyDescriptor::IterateBody(this, v); 295 SharedFunctionInfo::BodyDescriptor::IterateBody(this, v);
295 break; 296 break;
296 } 297 }
297 298
298 #define MAKE_STRUCT_CASE(NAME, Name, name) case NAME##_TYPE: 299 #define MAKE_STRUCT_CASE(NAME, Name, name) case NAME##_TYPE:
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 }; 490 };
490 491
491 492
492 template Object* VisitWeakList<Context>(Heap* heap, Object* list, 493 template Object* VisitWeakList<Context>(Heap* heap, Object* list,
493 WeakObjectRetainer* retainer); 494 WeakObjectRetainer* retainer);
494 495
495 template Object* VisitWeakList<AllocationSite>(Heap* heap, Object* list, 496 template Object* VisitWeakList<AllocationSite>(Heap* heap, Object* list,
496 WeakObjectRetainer* retainer); 497 WeakObjectRetainer* retainer);
497 } // namespace internal 498 } // namespace internal
498 } // namespace v8 499 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698