< prev index next >

src/hotspot/share/prims/methodHandles.cpp

Print this page

        

@@ -498,13 +498,10 @@
 }
 
 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++) {

@@ -513,16 +510,10 @@
       // 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':

@@ -562,14 +553,12 @@
         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) {
+      } else if (bt == T_OBJECT || bt == T_ARRAY || bt == T_VALUETYPE) {
         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));
       }
< prev index next >