From 2514113887e7a32a0f7bc69b8c1371f2dc7774e4 Mon Sep 17 00:00:00 2001 From: "mstarzinger@chromium.org" Date: Thu, 9 Oct 2014 14:01:59 +0000 Subject: [PATCH] Remove deprecated verification for context separation. R=hpayer@chromium.org Review URL: https://codereview.chromium.org/636173002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/flag-definitions.h | 2 - src/heap/mark-compact.cc | 103 ----------------------------------------------- 2 files changed, 105 deletions(-) diff --git a/src/flag-definitions.h b/src/flag-definitions.h index 8f5ffed..5a0c9f7 100644 --- a/src/flag-definitions.h +++ b/src/flag-definitions.h @@ -731,8 +731,6 @@ DEFINE_BOOL(trace_contexts, false, "trace contexts operations") DEFINE_BOOL(gc_verbose, false, "print stuff during garbage collection") DEFINE_BOOL(heap_stats, false, "report heap statistics before and after GC") DEFINE_BOOL(code_stats, false, "report code statistics after GC") -DEFINE_BOOL(verify_native_context_separation, false, - "verify that code holds on to at most one native context after GC") DEFINE_BOOL(print_handles, false, "report handles after GC") DEFINE_BOOL(print_global_handles, false, "report global handles after GC") diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc index 69fc579..ed10bf9 100644 --- a/src/heap/mark-compact.cc +++ b/src/heap/mark-compact.cc @@ -227,103 +227,6 @@ static void VerifyEvacuation(Heap* heap) { #endif // VERIFY_HEAP -#ifdef DEBUG -class VerifyNativeContextSeparationVisitor : public ObjectVisitor { - public: - VerifyNativeContextSeparationVisitor() : current_native_context_(NULL) {} - - void VisitPointers(Object** start, Object** end) { - for (Object** current = start; current < end; current++) { - if ((*current)->IsHeapObject()) { - HeapObject* object = HeapObject::cast(*current); - if (object->IsString()) continue; - switch (object->map()->instance_type()) { - case JS_FUNCTION_TYPE: - CheckContext(JSFunction::cast(object)->context()); - break; - case JS_GLOBAL_PROXY_TYPE: - CheckContext(JSGlobalProxy::cast(object)->native_context()); - break; - case JS_GLOBAL_OBJECT_TYPE: - case JS_BUILTINS_OBJECT_TYPE: - CheckContext(GlobalObject::cast(object)->native_context()); - break; - case JS_ARRAY_TYPE: - case JS_DATE_TYPE: - case JS_OBJECT_TYPE: - case JS_REGEXP_TYPE: - VisitPointer(HeapObject::RawField(object, JSObject::kMapOffset)); - break; - case MAP_TYPE: - VisitPointer(HeapObject::RawField(object, Map::kPrototypeOffset)); - VisitPointer(HeapObject::RawField(object, Map::kConstructorOffset)); - break; - case FIXED_ARRAY_TYPE: - if (object->IsContext()) { - CheckContext(object); - } else { - FixedArray* array = FixedArray::cast(object); - int length = array->length(); - // Set array length to zero to prevent cycles while iterating - // over array bodies, this is easier than intrusive marking. - array->set_length(0); - array->IterateBody(FIXED_ARRAY_TYPE, FixedArray::SizeFor(length), - this); - array->set_length(length); - } - break; - case CELL_TYPE: - case JS_PROXY_TYPE: - case JS_VALUE_TYPE: - case TYPE_FEEDBACK_INFO_TYPE: - object->Iterate(this); - break; - case DECLARED_ACCESSOR_INFO_TYPE: - case EXECUTABLE_ACCESSOR_INFO_TYPE: - case BYTE_ARRAY_TYPE: - case CALL_HANDLER_INFO_TYPE: - case CODE_TYPE: - case FIXED_DOUBLE_ARRAY_TYPE: - case HEAP_NUMBER_TYPE: - case MUTABLE_HEAP_NUMBER_TYPE: - case INTERCEPTOR_INFO_TYPE: - case ODDBALL_TYPE: - case SCRIPT_TYPE: - case SHARED_FUNCTION_INFO_TYPE: - break; - default: - UNREACHABLE(); - } - } - } - } - - private: - void CheckContext(Object* context) { - if (!context->IsContext()) return; - Context* native_context = Context::cast(context)->native_context(); - if (current_native_context_ == NULL) { - current_native_context_ = native_context; - } else { - CHECK_EQ(current_native_context_, native_context); - } - } - - Context* current_native_context_; -}; - - -static void VerifyNativeContextSeparation(Heap* heap) { - HeapObjectIterator it(heap->code_space()); - - for (Object* object = it.Next(); object != NULL; object = it.Next()) { - VerifyNativeContextSeparationVisitor visitor; - Code::cast(object)->CodeIterateBody(&visitor); - } -} -#endif - - void MarkCompactCollector::SetUp() { free_list_old_data_space_.Reset(new FreeList(heap_->old_data_space())); free_list_old_pointer_space_.Reset(new FreeList(heap_->old_pointer_space())); @@ -405,12 +308,6 @@ void MarkCompactCollector::CollectGarbage() { SweepSpaces(); -#ifdef DEBUG - if (FLAG_verify_native_context_separation) { - VerifyNativeContextSeparation(heap_); - } -#endif - #ifdef VERIFY_HEAP if (heap()->weak_embedded_objects_verification_enabled()) { VerifyWeakEmbeddedObjectsInCode(); -- 2.7.4