You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Pavel Pervov (JIRA)" <ji...@apache.org> on 2007/01/30 15:44:33 UTC
[jira] Commented: (HARMONY-1748) [drlvm][jit] IllegalAccessError is
not thrown when running test on Jitrino.OPT
[ https://issues.apache.org/jira/browse/HARMONY-1748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12468626 ]
Pavel Pervov commented on HARMONY-1748:
---------------------------------------
Diving into OPT showed that it reduces invokeinterface to invokevirtual ("direct call" they call it) for some reason.
The stack looks as follows:
> jitrino.dll!Jitrino::IRBuilder::genDirectCall(Jitrino::MethodDesc * methodDesc=0x0297b9e4, Jitrino::Type * returnType=0x02980bc8, Jitrino::Opnd * tauNullCheckedFirstArg=0x0297b8b0, Jitrino::Opnd * tauTypesChecked=0x0297ba18, unsigned int numArgs=1, Jitrino::Opnd * * args=0x029ab66c, Jitrino::InlineInfoBuilder * inlineInfoBuilder=0x00000000) Line 1298 + 0x3 C++
jitrino.dll!Jitrino::IRBuilderSimplifier::genDirectCall(Jitrino::MethodDesc * methodDesc=0x0297b9e4, Jitrino::Type * returnType=0x02980bc8, Jitrino::Opnd * tauNullCheckedFirstArg=0x0297b8b0, Jitrino::Opnd * tauTypesChecked=0x0297ba18, unsigned int numArgs=1, Jitrino::Opnd * * args=0x029ab66c, Jitrino::InlineInfoBuilder * inlineBuilder=0x00000000) Line 141 C++
jitrino.dll!Jitrino::Simplifier::simplifyTauVirtualCall(Jitrino::MethodDesc * methodDesc=0x0297b9e4, Jitrino::Type * returnType=0x02980bc8, Jitrino::Opnd * tauNullCheckedFirstArg=0x0297b8b0, Jitrino::Opnd * tauTypesChecked=0x0297ba18, unsigned int numArgs=1, Jitrino::Opnd * * args=0x029ab66c, Jitrino::InlineInfoBuilder * inlineBuilder=0x00000000) Line 3611 + 0x25 C++
jitrino.dll!Jitrino::IRBuilder::genTauVirtualCall(Jitrino::MethodDesc * methodDesc=0x0297b9e4, Jitrino::Type * returnType=0x02980bc8, Jitrino::Opnd * tauNullCheckedFirstArg=0x0297b8b0, Jitrino::Opnd * tauTypesChecked=0x00000000, unsigned int numArgs=1, Jitrino::Opnd * * args=0x029ab66c, Jitrino::InlineInfoBuilder * inlineInfoBuilder=0x00000000) Line 1343 C++
jitrino.dll!Jitrino::JavaByteCodeTranslator::invokeinterface(unsigned int constPoolIndex=43518920, unsigned int count=1) Line 2163 + 0x22 C++
jitrino.dll!Jitrino::JavaByteCodeParserCallback::parseByteCode(const unsigned char * byteCodes=0x02d62900, unsigned int off=5) Line 617 + 0x18 C++
jitrino.dll!Jitrino::ByteCodeParser::parse(Jitrino::ByteCodeParserCallback * cb=0x0013ee2c) Line 70 + 0xe C++
jitrino.dll!Jitrino::JavaTranslator::translateMethod(Jitrino::CompilationInterface & ci={...}, Jitrino::MethodDesc & methodDesc={...}, Jitrino::IRBuilder & irBuilder={...}) Line 59 C++
jitrino.dll!Jitrino::TranslatorSession::translate() Line 62 + 0xb C++
jitrino.dll!Jitrino::TranslatorSession::run() Line 45 C++
jitrino.dll!Jitrino::runPipeline(Jitrino::CompilationContext * c=0x0013f17c) Line 227 C++
jitrino.dll!Jitrino::compileMethod(Jitrino::CompilationContext * cc=0x0013f17c) Line 264 C++
jitrino.dll!Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext * cc=0x0013f17c) Line 286 + 0x6 C++
jitrino.dll!JIT_compile_method_with_params(void * jit=0x011d7038, void * compilation=0x0013f42c, Method * method_handle=0x02d62780, OpenMethodExecutionParams compilation_params={...}) Line 278 + 0xa C++
harmonyvm.dll!Dll_JIT::compile_method_with_params(void * compilation=0x0013f42c, Method * method=0x02d62780, OpenMethodExecutionParams flags={...}) Line 86 + 0x18 C++
harmonyvm.dll!compile_do_compilation_jit(Method * method=0x02d62780, JIT * jit=0x011d7038) Line 645 + 0x19 C++
harmonyvm.dll!vm_compile_method(void * jit=0x011d7038, Method * method=0x02d62780) Line 2462 + 0xd C++
em.dll!DrlEMImpl::compileMethod(Method * mh=0x02d62780) Line 545 + 0x13 C++
em.dll!CompileMethod(Method * method_handle=0x02d62780) Line 49 + 0x19 C++
harmonyvm.dll!compile_do_compilation(Method * method=0x02d62780) Line 753 + 0x15 C++
harmonyvm.dll!compile_me(Method * method=0x02d62780) Line 773 + 0x9 C++
...
Method, which is compiled, is (no surprise though) Test.main.
> [drlvm][jit] IllegalAccessError is not thrown when running test on Jitrino.OPT
> ------------------------------------------------------------------------------
>
> Key: HARMONY-1748
> URL: https://issues.apache.org/jira/browse/HARMONY-1748
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Windows XP, Pentium 4 3000 HT
> Reporter: Alexander D Shipilov
> Priority: Minor
> Attachments: reproducecode.zip, reproducecodeJunit.zip
>
>
> Harmony crashes during attempt of call protected method from class, if this method declared in parent interface as public.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.