Mercurial > hg > truffle
diff src/share/vm/ci/ciMethodData.cpp @ 14702:d4dd5204c0aa
Merge
author | ehelin |
---|---|
date | Fri, 14 Mar 2014 13:27:18 +0100 |
parents | 53ed0f89f44e |
children | 92aa6797d639 78bbf4d43a14 |
line wrap: on
line diff
--- a/src/share/vm/ci/ciMethodData.cpp Fri Mar 14 09:18:39 2014 +0100 +++ b/src/share/vm/ci/ciMethodData.cpp Fri Mar 14 13:27:18 2014 +0100 @@ -87,8 +87,9 @@ DataLayout* dp_dst = extra_data_base(); for (;; dp_src = MethodData::next_extra(dp_src), dp_dst = MethodData::next_extra(dp_dst)) { assert(dp_src < end_src, "moved past end of extra data"); - assert(dp_src->tag() == dp_dst->tag(), err_msg("should be same tags %d != %d", dp_src->tag(), dp_dst->tag())); - switch(dp_src->tag()) { + // New traps in the MDO can be added as we translate the copy so + // look at the entries in the copy. + switch(dp_dst->tag()) { case DataLayout::speculative_trap_data_tag: { ciSpeculativeTrapData* data_dst = new ciSpeculativeTrapData(dp_dst); SpeculativeTrapData* data_src = new SpeculativeTrapData(dp_src); @@ -102,7 +103,7 @@ // An empty slot or ArgInfoData entry marks the end of the trap data return; default: - fatal(err_msg("bad tag = %d", dp_src->tag())); + fatal(err_msg("bad tag = %d", dp_dst->tag())); } } }