Revision: 21283
Author:   [email protected]
Date:     Tue May 13 08:48:39 2014 UTC
Log:      Fix incremental marking of native context when bootstrapping.

This should fix one of the arm64 build breaks - we have tried to mark
half-initialized native context there, but the normalized_map_cache
entry was still undefined.

[email protected]
BUG=

Review URL: https://codereview.chromium.org/284633002
http://code.google.com/p/v8/source/detail?r=21283

Modified:
 /branches/bleeding_edge/src/incremental-marking.cc

=======================================
--- /branches/bleeding_edge/src/incremental-marking.cc Fri May 9 09:13:12 2014 UTC +++ /branches/bleeding_edge/src/incremental-marking.cc Tue May 13 08:48:39 2014 UTC
@@ -222,9 +222,13 @@
   static void VisitNativeContextIncremental(Map* map, HeapObject* object) {
     Context* context = Context::cast(object);

-    // We will mark cache black with a separate pass
-    // when we finish marking.
-    MarkObjectGreyDoNotEnqueue(context->normalized_map_cache());
+ // We will mark cache black with a separate pass when we finish marking.
+    // Note that GC can happen when the context is not fully initialized,
+    // so the cache can be undefined.
+    Object* cache = context->get(Context::NORMALIZED_MAP_CACHE_INDEX);
+    if (!cache->IsUndefined()) {
+      MarkObjectGreyDoNotEnqueue(cache);
+    }
     VisitNativeContext(map, context);
   }

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to