< prev index next >
src/hotspot/share/prims/methodHandles.cpp
Print this page
*** 498,510 ****
}
static const char OBJ_SIG[] = "Ljava/lang/Object;";
enum { OBJ_SIG_LEN = 18 };
- static const char VAL_SIG[] = "Qjava/lang/__Value;";
- enum { VAL_SIG_LEN = 19 };
-
bool MethodHandles::is_basic_type_signature(Symbol* sig) {
assert(vmSymbols::object_signature()->utf8_length() == (int)OBJ_SIG_LEN, "");
assert(vmSymbols::object_signature()->equals(OBJ_SIG), "");
const int len = sig->utf8_length();
for (int i = 0; i < len; i++) {
--- 498,507 ----
*** 513,528 ****
// only java/lang/Object is valid here
if (sig->index_of_at(i, OBJ_SIG, OBJ_SIG_LEN) != i)
return false;
i += OBJ_SIG_LEN-1; //-1 because of i++ in loop
continue;
- case 'Q' :
- // only java/lang/__Value is valid here
- if (sig->index_of_at(i, VAL_SIG, VAL_SIG_LEN) != i)
- return false;
- i += VAL_SIG_LEN-1; //-1 because of i++ in loop
- continue;
case '(': case ')': case 'V':
case 'I': case 'J': case 'F': case 'D':
continue;
//case '[':
//case 'Z': case 'B': case 'C': case 'S':
--- 510,519 ----
*** 562,575 ****
buffer.put(')');
}
if (arg_pos == keep_arg_pos) {
buffer.write((char*) ss.raw_bytes(),
(int) ss.raw_length());
! } else if (bt == T_OBJECT || bt == T_ARRAY) {
buffer.write(OBJ_SIG, OBJ_SIG_LEN);
- } else if (bt == T_VALUETYPE) {
- buffer.write(VAL_SIG, VAL_SIG_LEN);
} else {
if (is_subword_type(bt))
bt = T_INT;
buffer.put(type2char(bt));
}
--- 553,564 ----
buffer.put(')');
}
if (arg_pos == keep_arg_pos) {
buffer.write((char*) ss.raw_bytes(),
(int) ss.raw_length());
! } else if (bt == T_OBJECT || bt == T_ARRAY || bt == T_VALUETYPE) {
buffer.write(OBJ_SIG, OBJ_SIG_LEN);
} else {
if (is_subword_type(bt))
bt = T_INT;
buffer.put(type2char(bt));
}
< prev index next >