comparison src/share/vm/ci/ciInstanceKlass.cpp @ 2177:3582bf76420e

6990754: Use native memory and reference counting to implement SymbolTable Summary: move symbols from permgen into C heap and reference count them Reviewed-by: never, acorn, jmasa, stefank
author coleenp
date Thu, 27 Jan 2011 16:11:27 -0800
parents f95d63e2154a
children d25d4ca69222 4f26f535a225
comparison
equal deleted inserted replaced
2176:27e4ea99855d 2177:3582bf76420e
378 // ciInstanceKlass::get_field_by_name 378 // ciInstanceKlass::get_field_by_name
379 ciField* ciInstanceKlass::get_field_by_name(ciSymbol* name, ciSymbol* signature, bool is_static) { 379 ciField* ciInstanceKlass::get_field_by_name(ciSymbol* name, ciSymbol* signature, bool is_static) {
380 VM_ENTRY_MARK; 380 VM_ENTRY_MARK;
381 instanceKlass* k = get_instanceKlass(); 381 instanceKlass* k = get_instanceKlass();
382 fieldDescriptor fd; 382 fieldDescriptor fd;
383 klassOop def = k->find_field(name->get_symbolOop(), signature->get_symbolOop(), is_static, &fd); 383 klassOop def = k->find_field(name->get_symbol(), signature->get_symbol(), is_static, &fd);
384 if (def == NULL) { 384 if (def == NULL) {
385 return NULL; 385 return NULL;
386 } 386 }
387 ciField* field = new (CURRENT_THREAD_ENV->arena()) ciField(&fd); 387 ciField* field = new (CURRENT_THREAD_ENV->arena()) ciField(&fd);
388 return field; 388 return field;
539 // 539 //
540 // Find a method in this klass. 540 // Find a method in this klass.
541 ciMethod* ciInstanceKlass::find_method(ciSymbol* name, ciSymbol* signature) { 541 ciMethod* ciInstanceKlass::find_method(ciSymbol* name, ciSymbol* signature) {
542 VM_ENTRY_MARK; 542 VM_ENTRY_MARK;
543 instanceKlass* k = get_instanceKlass(); 543 instanceKlass* k = get_instanceKlass();
544 symbolOop name_sym = name->get_symbolOop(); 544 Symbol* name_sym = name->get_symbol();
545 symbolOop sig_sym= signature->get_symbolOop(); 545 Symbol* sig_sym= signature->get_symbol();
546 546
547 methodOop m = k->find_method(name_sym, sig_sym); 547 methodOop m = k->find_method(name_sym, sig_sym);
548 if (m == NULL) return NULL; 548 if (m == NULL) return NULL;
549 549
550 return CURRENT_THREAD_ENV->get_object(m)->as_method(); 550 return CURRENT_THREAD_ENV->get_object(m)->as_method();