hotspot/src/share/vm/ci/ciMethodData.cpp
changeset 44315 1e2f842b0c96
parent 36601 e791e26c8f1b
child 46630 75aa3e39d02c
equal deleted inserted replaced
44314:30ae899b9eca 44315:1e2f842b0c96
   406 void ciMethodData::set_argument_type(int bci, int i, ciKlass* k) {
   406 void ciMethodData::set_argument_type(int bci, int i, ciKlass* k) {
   407   VM_ENTRY_MARK;
   407   VM_ENTRY_MARK;
   408   MethodData* mdo = get_MethodData();
   408   MethodData* mdo = get_MethodData();
   409   if (mdo != NULL) {
   409   if (mdo != NULL) {
   410     ProfileData* data = mdo->bci_to_data(bci);
   410     ProfileData* data = mdo->bci_to_data(bci);
   411     if (data->is_CallTypeData()) {
   411     if (data != NULL) {
   412       data->as_CallTypeData()->set_argument_type(i, k->get_Klass());
   412       if (data->is_CallTypeData()) {
   413     } else {
   413         data->as_CallTypeData()->set_argument_type(i, k->get_Klass());
   414       assert(data->is_VirtualCallTypeData(), "no arguments!");
   414       } else {
   415       data->as_VirtualCallTypeData()->set_argument_type(i, k->get_Klass());
   415         assert(data->is_VirtualCallTypeData(), "no arguments!");
       
   416         data->as_VirtualCallTypeData()->set_argument_type(i, k->get_Klass());
       
   417       }
   416     }
   418     }
   417   }
   419   }
   418 }
   420 }
   419 
   421 
   420 void ciMethodData::set_parameter_type(int i, ciKlass* k) {
   422 void ciMethodData::set_parameter_type(int i, ciKlass* k) {
   428 void ciMethodData::set_return_type(int bci, ciKlass* k) {
   430 void ciMethodData::set_return_type(int bci, ciKlass* k) {
   429   VM_ENTRY_MARK;
   431   VM_ENTRY_MARK;
   430   MethodData* mdo = get_MethodData();
   432   MethodData* mdo = get_MethodData();
   431   if (mdo != NULL) {
   433   if (mdo != NULL) {
   432     ProfileData* data = mdo->bci_to_data(bci);
   434     ProfileData* data = mdo->bci_to_data(bci);
   433     if (data->is_CallTypeData()) {
   435     if (data != NULL) {
   434       data->as_CallTypeData()->set_return_type(k->get_Klass());
   436       if (data->is_CallTypeData()) {
   435     } else {
   437         data->as_CallTypeData()->set_return_type(k->get_Klass());
   436       assert(data->is_VirtualCallTypeData(), "no arguments!");
   438       } else {
   437       data->as_VirtualCallTypeData()->set_return_type(k->get_Klass());
   439         assert(data->is_VirtualCallTypeData(), "no arguments!");
       
   440         data->as_VirtualCallTypeData()->set_return_type(k->get_Klass());
       
   441       }
   438     }
   442     }
   439   }
   443   }
   440 }
   444 }
   441 
   445 
   442 bool ciMethodData::has_escape_info() {
   446 bool ciMethodData::has_escape_info() {