equal
deleted
inserted
replaced
388 } |
388 } |
389 |
389 |
390 // Figure out if the result value is an oop or not (Note: This is a different value |
390 // Figure out if the result value is an oop or not (Note: This is a different value |
391 // than result_type. result_type will be T_INT of oops. (it is about size) |
391 // than result_type. result_type will be T_INT of oops. (it is about size) |
392 BasicType result_type = runtime_type_from(result); |
392 BasicType result_type = runtime_type_from(result); |
393 bool oop_result_flag = (result->get_type() == T_OBJECT || result->get_type() == T_ARRAY); |
393 bool oop_result_flag = is_reference_type(result->get_type()); |
394 |
394 |
395 // Find receiver |
395 // Find receiver |
396 Handle receiver = (!method->is_static()) ? args->receiver() : Handle(); |
396 Handle receiver = (!method->is_static()) ? args->receiver() : Handle(); |
397 |
397 |
398 // When we reenter Java, we need to reenable the reserved/yellow zone which |
398 // When we reenter Java, we need to reenable the reserved/yellow zone which |
617 |
617 |
618 void JavaCallArguments::verify(const methodHandle& method, BasicType return_type) { |
618 void JavaCallArguments::verify(const methodHandle& method, BasicType return_type) { |
619 guarantee(method->size_of_parameters() == size_of_parameters(), "wrong no. of arguments pushed"); |
619 guarantee(method->size_of_parameters() == size_of_parameters(), "wrong no. of arguments pushed"); |
620 |
620 |
621 // Treat T_OBJECT and T_ARRAY as the same |
621 // Treat T_OBJECT and T_ARRAY as the same |
622 if (return_type == T_ARRAY) return_type = T_OBJECT; |
622 if (is_reference_type(return_type)) return_type = T_OBJECT; |
623 |
623 |
624 // Check that oop information is correct |
624 // Check that oop information is correct |
625 Symbol* signature = method->signature(); |
625 Symbol* signature = method->signature(); |
626 |
626 |
627 SignatureChekker sc(signature, |
627 SignatureChekker sc(signature, |