Mercurial > hg > graal-compiler
changeset 1882:ee0d26abaad3
Merge
author | kamg |
---|---|
date | Tue, 26 Oct 2010 16:48:28 -0700 |
parents | 6412b3805cd6 (diff) 60ce9dade348 (current diff) |
children | f5c8d6e5bfee 1070423b51f3 |
files | |
diffstat | 1 files changed, 9 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/classfile/classFileParser.cpp Tue Oct 26 14:43:21 2010 -0400 +++ b/src/share/vm/classfile/classFileParser.cpp Tue Oct 26 16:48:28 2010 -0700 @@ -4309,20 +4309,21 @@ } -// Unqualified names may not contain the characters '.', ';', or '/'. -// Method names also may not contain the characters '<' or '>', unless <init> or <clinit>. -// Note that method names may not be <init> or <clinit> in this method. -// Because these names have been checked as special cases before calling this method -// in verify_legal_method_name. -bool ClassFileParser::verify_unqualified_name(char* name, unsigned int length, int type) { +// Unqualified names may not contain the characters '.', ';', '[', or '/'. +// Method names also may not contain the characters '<' or '>', unless <init> +// or <clinit>. Note that method names may not be <init> or <clinit> in this +// method. Because these names have been checked as special cases before +// calling this method in verify_legal_method_name. +bool ClassFileParser::verify_unqualified_name( + char* name, unsigned int length, int type) { jchar ch; for (char* p = name; p != name + length; ) { ch = *p; if (ch < 128) { p++; - if (ch == '.' || ch == ';') { - return false; // do not permit '.' or ';' + if (ch == '.' || ch == ';' || ch == '[' ) { + return false; // do not permit '.', ';', or '[' } if (type != LegalClass && ch == '/') { return false; // do not permit '/' unless it's class name