Mercurial > hg > graal-compiler
diff src/share/vm/prims/methodHandleWalk.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 | 70427f06ea47 |
children | c5a923563727 |
line wrap: on
line diff
--- a/src/share/vm/prims/methodHandleWalk.cpp Thu Jan 27 13:42:28 2011 -0800 +++ b/src/share/vm/prims/methodHandleWalk.cpp Thu Jan 27 16:11:27 2011 -0800 @@ -120,6 +120,7 @@ if (cur_slot == arg_slot) return T_OBJECT; } + ResourceMark rm(THREAD); for (SignatureStream ss(m->signature()); !ss.is_done(); ss.next()) { BasicType bt = ss.type(); cur_slot -= type2size[bt]; @@ -961,9 +962,9 @@ m = vmIntrinsics::method_for(iid); } - klassOop klass = m->method_holder(); - symbolOop name = m->name(); - symbolOop signature = m->signature(); + klassOop klass = m->method_holder(); + Symbol* name = m->name(); + Symbol* signature = m->signature(); if (tailcall) { // Actually, in order to make these methods more recognizable, @@ -1141,7 +1142,7 @@ for (int i = 1; i < _constants.length(); i++) { ConstantValue* cv = _constants.at(i); switch (cv->tag()) { - case JVM_CONSTANT_Utf8: cpool->symbol_at_put( i, cv->symbol_oop() ); break; + case JVM_CONSTANT_Utf8: cpool->symbol_at_put( i, cv->symbol() ); break; case JVM_CONSTANT_Integer: cpool->int_at_put( i, cv->get_jint() ); break; case JVM_CONSTANT_Float: cpool->float_at_put( i, cv->get_jfloat() ); break; case JVM_CONSTANT_Long: cpool->long_at_put( i, cv->get_jlong() ); break; @@ -1331,7 +1332,7 @@ virtual ArgToken make_invoke(methodOop m, vmIntrinsics::ID iid, Bytecodes::Code op, bool tailcall, int argc, ArgToken* argv, TRAPS) { - symbolOop name, sig; + Symbol* name, sig; if (m != NULL) { name = m->name(); sig = m->signature();