Mercurial > hg > truffle
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(); |