equal
deleted
inserted
replaced
334 |
334 |
335 // Parse a possibly quoted version of a symbol into a symbolOop |
335 // Parse a possibly quoted version of a symbol into a symbolOop |
336 Symbol* parse_symbol(TRAPS) { |
336 Symbol* parse_symbol(TRAPS) { |
337 const char* str = parse_escaped_string(); |
337 const char* str = parse_escaped_string(); |
338 if (str != NULL) { |
338 if (str != NULL) { |
339 Symbol* sym = SymbolTable::lookup(str, (int)strlen(str), CHECK_NULL); |
339 Symbol* sym = SymbolTable::new_symbol(str); |
340 return sym; |
340 return sym; |
341 } |
341 } |
342 return NULL; |
342 return NULL; |
343 } |
343 } |
344 |
344 |
345 // Parse a valid klass name and look it up |
345 // Parse a valid klass name and look it up |
346 Klass* parse_klass(TRAPS) { |
346 Klass* parse_klass(TRAPS) { |
347 const char* str = parse_escaped_string(); |
347 const char* str = parse_escaped_string(); |
348 Symbol* klass_name = SymbolTable::lookup(str, (int)strlen(str), CHECK_NULL); |
348 Symbol* klass_name = SymbolTable::new_symbol(str); |
349 if (klass_name != NULL) { |
349 if (klass_name != NULL) { |
350 Klass* k = NULL; |
350 Klass* k = NULL; |
351 if (_iklass != NULL) { |
351 if (_iklass != NULL) { |
352 k = (Klass*)_iklass->find_klass(ciSymbol::make(klass_name->as_C_string()))->constant_encoding(); |
352 k = (Klass*)_iklass->find_klass(ciSymbol::make(klass_name->as_C_string()))->constant_encoding(); |
353 } else { |
353 } else { |
369 return NULL; |
369 return NULL; |
370 } |
370 } |
371 |
371 |
372 // Lookup a klass |
372 // Lookup a klass |
373 Klass* resolve_klass(const char* klass, TRAPS) { |
373 Klass* resolve_klass(const char* klass, TRAPS) { |
374 Symbol* klass_name = SymbolTable::lookup(klass, (int)strlen(klass), CHECK_NULL); |
374 Symbol* klass_name = SymbolTable::new_symbol(klass); |
375 return SystemDictionary::resolve_or_fail(klass_name, _loader, _protection_domain, true, THREAD); |
375 return SystemDictionary::resolve_or_fail(klass_name, _loader, _protection_domain, true, THREAD); |
376 } |
376 } |
377 |
377 |
378 // Parse the standard tuple of <klass> <name> <signature> |
378 // Parse the standard tuple of <klass> <name> <signature> |
379 Method* parse_method(TRAPS) { |
379 Method* parse_method(TRAPS) { |
798 assert(k->is_initialized(), "must be"); |
798 assert(k->is_initialized(), "must be"); |
799 |
799 |
800 const char* field_name = parse_escaped_string(); |
800 const char* field_name = parse_escaped_string(); |
801 const char* field_signature = parse_string(); |
801 const char* field_signature = parse_string(); |
802 fieldDescriptor fd; |
802 fieldDescriptor fd; |
803 Symbol* name = SymbolTable::lookup(field_name, (int)strlen(field_name), CHECK); |
803 Symbol* name = SymbolTable::new_symbol(field_name); |
804 Symbol* sig = SymbolTable::lookup(field_signature, (int)strlen(field_signature), CHECK); |
804 Symbol* sig = SymbolTable::new_symbol(field_signature); |
805 if (!k->find_local_field(name, sig, &fd) || |
805 if (!k->find_local_field(name, sig, &fd) || |
806 !fd.is_static() || |
806 !fd.is_static() || |
807 fd.has_initial_value()) { |
807 fd.has_initial_value()) { |
808 report_error(field_name); |
808 report_error(field_name); |
809 return; |
809 return; |