< prev index next >

src/share/vm/runtime/signature.cpp

Print this page

        

*** 384,397 **** Symbol* SignatureStream::as_symbol(TRAPS) { // Create a symbol from for string _begin _end int begin = _begin; int end = _end; ! if ( ( _signature->byte_at(_begin) == 'L' || _signature->byte_at(_begin) == 'Q' ) ! && _signature->byte_at(_end-1) == ';') { begin++; end--; } // Save names for cleaning up reference count at the end of // SignatureStream scope. Symbol* name = SymbolTable::new_symbol(_signature, begin, end, CHECK_NULL); --- 384,399 ---- Symbol* SignatureStream::as_symbol(TRAPS) { // Create a symbol from for string _begin _end int begin = _begin; int end = _end; ! if (_type == T_OBJECT || _type == T_VALUETYPE) { begin++; end--; + if (begin == end) { + return (_type == T_OBJECT) ? vmSymbols::java_lang_Object() : vmSymbols::java_lang____Value(); + } } // Save names for cleaning up reference count at the end of // SignatureStream scope. Symbol* name = SymbolTable::new_symbol(_signature, begin, end, CHECK_NULL);
< prev index next >