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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: src/heap/objects-visiting.cc
diff --git a/src/heap/objects-visiting.cc b/src/heap/objects-visiting.cc
index 3d6cb7309553ce5d1336a41ab83d2e27f88875c2..fef22f924c02b60c3c84493393673f73f41c40d0 100644
--- a/src/heap/objects-visiting.cc
+++ b/src/heap/objects-visiting.cc
@@ -226,16 +226,18 @@ void HeapObject::IterateBody(InstanceType type, int object_size,
case JS_SET_ITERATOR_TYPE:
case JS_MAP_ITERATOR_TYPE:
case JS_ITERATOR_RESULT_TYPE:
- case JS_WEAK_MAP_TYPE:
- case JS_WEAK_SET_TYPE:
case JS_REGEXP_TYPE:
case JS_GLOBAL_PROXY_TYPE:
case JS_GLOBAL_OBJECT_TYPE:
case JS_MESSAGE_OBJECT_TYPE:
JSObject::BodyDescriptor::IterateBody(this, object_size, v);
break;
+ case JS_WEAK_MAP_TYPE:
+ case JS_WEAK_SET_TYPE:
+ JSWeakCollection::BodyDescriptor::IterateBody(this, object_size, v);
+ break;
case JS_ARRAY_BUFFER_TYPE:
- JSArrayBuffer::JSArrayBufferIterateBody(this, v);
+ JSArrayBuffer::BodyDescriptor::IterateBody(this, object_size, v);
break;
case JS_FUNCTION_TYPE:
JSFunction::BodyDescriptor::IterateBody(this, object_size, v);
@@ -282,10 +284,9 @@ void HeapObject::IterateBody(InstanceType type, int object_size,
case FREE_SPACE_TYPE:
break;
-#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
- case FIXED_##TYPE##_ARRAY_TYPE: \
- reinterpret_cast<FixedTypedArrayBase*>(this) \
- ->FixedTypedArrayBaseIterateBody(v); \
+#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
+ case FIXED_##TYPE##_ARRAY_TYPE: \
+ FixedTypedArrayBase::BodyDescriptor::IterateBody(this, object_size, v); \
break;
TYPED_ARRAYS(TYPED_ARRAY_CASE)
#undef TYPED_ARRAY_CASE

Powered by Google App Engine
This is Rietveld 408576698