Reviewers: Toon Verwaest,

Message:
PTAL

Description:
Fix for buildbot failure after r19102.

Please review this at https://codereview.chromium.org/149093011/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+12, -3 lines):
  M src/hydrogen-check-elimination.cc
  M src/hydrogen-instructions.h


Index: src/hydrogen-check-elimination.cc
diff --git a/src/hydrogen-check-elimination.cc b/src/hydrogen-check-elimination.cc index 21bf6c97d854a81135f2508f9db3d0a14d6a8801..e393234067095408e1a68bb107212f9ef90903e9 100644
--- a/src/hydrogen-check-elimination.cc
+++ b/src/hydrogen-check-elimination.cc
@@ -285,7 +285,8 @@ class HCheckTable : public ZoneObject {
           HGraph* graph = instr->block()->graph();
           HCheckMaps* new_check_maps =
               HCheckMaps::New(graph->zone(), NULL, instr->value(),
-                              intersection, instr->typecheck());
+                              intersection, instr->typecheck(),
+                              instr->has_migration_target());
           if (entry->check_ != NULL &&
               entry->check_->block() == instr->block()) {
             // There is a check in the same block so replace it with a more
Index: src/hydrogen-instructions.h
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
index 6e24790fd8dc1aeacf347eb46e36dbcb40414c09..8863a5527568f8a2376963fd56f4dabfb60429be 100644
--- a/src/hydrogen-instructions.h
+++ b/src/hydrogen-instructions.h
@@ -2659,10 +2659,18 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
   }
   static HCheckMaps* New(Zone* zone, HValue* context,
                          HValue* value, UniqueSet<Map>* maps,
-                         HValue *typecheck = NULL) {
+                         HValue *typecheck,
+                         bool has_migration_target) {
     HCheckMaps* check_map = new(zone) HCheckMaps(value, zone, typecheck);
+ // Can't use Add(Handle<Map> map, ...) method to handle things automatically
+    // since it is not allowed dereference map handle at the time of
+    // creation of this object.
     for (int i = 0; i < maps->size(); i++) {
-      check_map->Add(maps->at(i).handle(), zone);
+      check_map->map_set_.Add(maps->at(i), zone);
+    }
+    if (has_migration_target) {
+      check_map->has_migration_target_ = true;
+      check_map->SetGVNFlag(kChangesNewSpacePromotion);
     }
     return check_map;
   }


--
--
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/groups/opt_out.

Reply via email to