Mercurial > hg > truffle
comparison src/share/vm/interpreter/interpreter.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 | 8012aa3ccede |
children | e1162778c1c8 |
comparison
equal
deleted
inserted
replaced
2176:27e4ea99855d | 2177:3582bf76420e |
---|---|
300 case Bytecodes::_invokestatic : | 300 case Bytecodes::_invokestatic : |
301 case Bytecodes::_invokeinterface: { | 301 case Bytecodes::_invokeinterface: { |
302 Thread *thread = Thread::current(); | 302 Thread *thread = Thread::current(); |
303 ResourceMark rm(thread); | 303 ResourceMark rm(thread); |
304 methodHandle mh(thread, method); | 304 methodHandle mh(thread, method); |
305 type = Bytecode_invoke(mh, bci).result_type(thread); | 305 type = Bytecode_invoke(mh, bci).result_type(); |
306 // since the cache entry might not be initialized: | 306 // since the cache entry might not be initialized: |
307 // (NOT needed for the old calling convension) | 307 // (NOT needed for the old calling convension) |
308 if (!is_top_frame) { | 308 if (!is_top_frame) { |
309 int index = Bytes::get_native_u2(bcp+1); | 309 int index = Bytes::get_native_u2(bcp+1); |
310 method->constants()->cache()->entry_at(index)->set_parameter_size(callee_parameters); | 310 method->constants()->cache()->entry_at(index)->set_parameter_size(callee_parameters); |
314 | 314 |
315 case Bytecodes::_invokedynamic: { | 315 case Bytecodes::_invokedynamic: { |
316 Thread *thread = Thread::current(); | 316 Thread *thread = Thread::current(); |
317 ResourceMark rm(thread); | 317 ResourceMark rm(thread); |
318 methodHandle mh(thread, method); | 318 methodHandle mh(thread, method); |
319 type = Bytecode_invoke(mh, bci).result_type(thread); | 319 type = Bytecode_invoke(mh, bci).result_type(); |
320 // since the cache entry might not be initialized: | 320 // since the cache entry might not be initialized: |
321 // (NOT needed for the old calling convension) | 321 // (NOT needed for the old calling convension) |
322 if (!is_top_frame) { | 322 if (!is_top_frame) { |
323 int index = Bytes::get_native_u4(bcp+1); | 323 int index = Bytes::get_native_u4(bcp+1); |
324 method->constants()->cache()->secondary_entry_at(index)->set_parameter_size(callee_parameters); | 324 method->constants()->cache()->secondary_entry_at(index)->set_parameter_size(callee_parameters); |