Reviewers: Hannes Payer,
Description:
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=
Please review this at https://codereview.chromium.org/284633002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+8, -3 lines):
M src/incremental-marking.cc
Index: src/incremental-marking.cc
diff --git a/src/incremental-marking.cc b/src/incremental-marking.cc
index
0cf6a9e1dc68fa55bbcdebcd420b1dda0725a442..2ae4dd5403c883f237c3b69b80bc9047d0239793
100644
--- a/src/incremental-marking.cc
+++ b/src/incremental-marking.cc
@@ -222,9 +222,14 @@ class IncrementalMarkingMarkingVisitor
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::cast(context)->get(Context::NORMALIZED_MAP_CACHE_INDEX);
+ if (!cache->IsUndefined()) {
+ MarkObjectGreyDoNotEnqueue(NormalizedMapCache::cast(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.