Fix TestHeapEntryIdsAndGC test. The assert was wrong.
authormikhail.naganov@gmail.com <mikhail.naganov@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 15 Jul 2010 15:41:05 +0000 (15:41 +0000)
committermikhail.naganov@gmail.com <mikhail.naganov@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 15 Jul 2010 15:41:05 +0000 (15:41 +0000)
TBR=ager@chromium.org

Review URL: http://codereview.chromium.org/2861051

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/profile-generator.cc

index 4e0cb71..9ec6b7d 100644 (file)
@@ -1533,12 +1533,14 @@ uint64_t HeapObjectsMap::FindObject(Address addr) {
 
 
 void HeapObjectsMap::MoveObject(Address from, Address to) {
+  if (from == to) return;
   HashMap::Entry* entry = entries_map_.Lookup(from, AddressHash(from), false);
   if (entry != NULL) {
     void* value = entry->value;
     entries_map_.Remove(from, AddressHash(from));
     entry = entries_map_.Lookup(to, AddressHash(to), true);
-    ASSERT(entry->value == NULL);
+    // We can have an entry at the new location, it is OK, as GC can overwrite
+    // dead objects with alive objects being moved.
     entry->value = value;
   }
 }