< 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 >