Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 1544836fe3bac3c4e796f1abd22d9b1a74874eec..4133f97cae7f79018b2e2eb3e0d6b4c6a031e52d 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -7399,7 +7399,10 @@ void String::PrintOn(FILE* file) { |
// Return true in case a back pointer has been cleared and false otherwise. |
// Set *keep_entry to true when a live map transition has been found. |
static bool ClearBackPointer(Heap* heap, Object* target, bool* keep_entry) { |
- if (!target->IsMap()) return false; |
+ if (!target->IsMap()) { |
+ *keep_entry = true; |
Michael Starzinger
2012/06/05 09:12:48
I don't think this fix is completely correct, beca
Toon Verwaest
2012/06/05 10:29:16
Done.
|
+ return false; |
+ } |
Map* map = Map::cast(target); |
if (Marking::MarkBitFrom(map).Get()) { |
*keep_entry = true; |