376 } |
376 } |
377 Symbol* result = SymbolTable::probe(buffer, end - begin); |
377 Symbol* result = SymbolTable::probe(buffer, end - begin); |
378 return result; |
378 return result; |
379 } |
379 } |
380 |
380 |
|
381 int SignatureStream::reference_parameter_count() { |
|
382 int args_count = 0; |
|
383 for ( ; !at_return_type(); next()) { |
|
384 if (is_object()) { |
|
385 args_count++; |
|
386 } |
|
387 } |
|
388 return args_count; |
|
389 } |
|
390 |
381 bool SignatureVerifier::is_valid_signature(Symbol* sig) { |
391 bool SignatureVerifier::is_valid_signature(Symbol* sig) { |
382 const char* signature = (const char*)sig->bytes(); |
392 const char* signature = (const char*)sig->bytes(); |
383 ssize_t len = sig->utf8_length(); |
393 ssize_t len = sig->utf8_length(); |
384 if (signature == NULL || signature[0] == '\0' || len < 1) { |
394 if (signature == NULL || signature[0] == '\0' || len < 1) { |
385 return false; |
395 return false; |