hotspot/src/share/vm/ci/ciMethodData.cpp
changeset 23201 6920163f479e
parent 22916 582da2ed4dfa
child 24424 2658d7834c6e
equal deleted inserted replaced
23198:5c8e61b02988 23201:6920163f479e
    85   DataLayout* dp_src  = mdo->extra_data_base();
    85   DataLayout* dp_src  = mdo->extra_data_base();
    86   DataLayout* end_src = mdo->extra_data_limit();
    86   DataLayout* end_src = mdo->extra_data_limit();
    87   DataLayout* dp_dst  = extra_data_base();
    87   DataLayout* dp_dst  = extra_data_base();
    88   for (;; dp_src = MethodData::next_extra(dp_src), dp_dst = MethodData::next_extra(dp_dst)) {
    88   for (;; dp_src = MethodData::next_extra(dp_src), dp_dst = MethodData::next_extra(dp_dst)) {
    89     assert(dp_src < end_src, "moved past end of extra data");
    89     assert(dp_src < end_src, "moved past end of extra data");
    90     assert(dp_src->tag() == dp_dst->tag(), err_msg("should be same tags %d != %d", dp_src->tag(), dp_dst->tag()));
    90     // New traps in the MDO can be added as we translate the copy so
    91     switch(dp_src->tag()) {
    91     // look at the entries in the copy.
       
    92     switch(dp_dst->tag()) {
    92     case DataLayout::speculative_trap_data_tag: {
    93     case DataLayout::speculative_trap_data_tag: {
    93       ciSpeculativeTrapData* data_dst = new ciSpeculativeTrapData(dp_dst);
    94       ciSpeculativeTrapData* data_dst = new ciSpeculativeTrapData(dp_dst);
    94       SpeculativeTrapData* data_src = new SpeculativeTrapData(dp_src);
    95       SpeculativeTrapData* data_src = new SpeculativeTrapData(dp_src);
    95       data_dst->translate_from(data_src);
    96       data_dst->translate_from(data_src);
    96       break;
    97       break;
   100     case DataLayout::no_tag:
   101     case DataLayout::no_tag:
   101     case DataLayout::arg_info_data_tag:
   102     case DataLayout::arg_info_data_tag:
   102       // An empty slot or ArgInfoData entry marks the end of the trap data
   103       // An empty slot or ArgInfoData entry marks the end of the trap data
   103       return;
   104       return;
   104     default:
   105     default:
   105       fatal(err_msg("bad tag = %d", dp_src->tag()));
   106       fatal(err_msg("bad tag = %d", dp_dst->tag()));
   106     }
   107     }
   107   }
   108   }
   108 }
   109 }
   109 
   110 
   110 void ciMethodData::load_data() {
   111 void ciMethodData::load_data() {