< prev index next >

src/share/vm/runtime/signature.cpp

Print this page




 516           return index + 1;
 517         }
 518         if (invalid_name_char(c)) {
 519           return -1;
 520         }
 521       }
 522       // fall through
 523     default: ; // fall through
 524   }
 525   return -1;
 526 }
 527 
 528 bool SignatureVerifier::invalid_name_char(char c) {
 529   switch (c) {
 530     case '\0': case '.': case ';': case '[':
 531       return true;
 532     default:
 533       return false;
 534   }
 535 }



























 516           return index + 1;
 517         }
 518         if (invalid_name_char(c)) {
 519           return -1;
 520         }
 521       }
 522       // fall through
 523     default: ; // fall through
 524   }
 525   return -1;
 526 }
 527 
 528 bool SignatureVerifier::invalid_name_char(char c) {
 529   switch (c) {
 530     case '\0': case '.': case ';': case '[':
 531       return true;
 532     default:
 533       return false;
 534   }
 535 }
 536 
 537 int SigEntry::count_fields(const GrowableArray<SigEntry>& sig_extended) {
 538   int values = 0;
 539   for (int i = 0; i < sig_extended.length(); i++) {
 540     if (sig_extended.at(i)._bt == T_VALUETYPE) {
 541       values++;
 542     }
 543   }
 544   return sig_extended.length() - 2 * values;
 545 }
 546 
 547 void SigEntry::fill_sig_bt(const GrowableArray<SigEntry>& sig_extended, BasicType* sig_bt_cc, int total_args_passed_cc, bool skip_vt) {
 548   int j = 0;
 549   for (int i = 0; i < sig_extended.length(); i++) {
 550     if (!skip_vt) {
 551       sig_bt_cc[j++] = sig_extended.at(i)._bt;
 552     } else if (sig_extended.at(i)._bt != T_VALUETYPE &&
 553                (sig_extended.at(i)._bt != T_VOID ||
 554                 sig_extended.at(i-1)._bt == T_LONG ||
 555                 sig_extended.at(i-1)._bt == T_DOUBLE)) {
 556       sig_bt_cc[j++] = sig_extended.at(i)._bt;
 557     }
 558   }
 559   assert(j == total_args_passed_cc, "bad number of arguments");
 560 }
< prev index next >