Index: vm/jitrino/src/optimizer/escanalyzer.cpp =================================================================== --- vm/jitrino/src/optimizer/escanalyzer.cpp (revision 575657) +++ vm/jitrino/src/optimizer/escanalyzer.cpp (working copy) @@ -2203,14 +2203,20 @@ Inst* inst = ((Opnd*)(*it)->refObj)->getInst(); inst->print(os); if (inst->getOpcode()==Op_IndirectMemoryCall) { - MethodDesc* md; + MethodDesc* md = NULL; if (inst->getSrc(0)->getInst()->getOpcode()== Op_LdVar) { md = inst->getSrc(0)->getType()->asMethodPtrType()->getMethodDesc(); } else { - md = inst->getSrc(0)->getInst()->asMethodInst()->getMethodDesc(); + if ( inst->getSrc(0)->getInst()->asMethodInst() ) { + md = inst->getSrc(0)->getInst()->asMethodInst()->getMethodDesc(); + } } os << std::endl; os << " "; - md->printFullName(os); + if (md) { + md->printFullName(os); + } else { + os << "logging error"; + } } } if ((*it)->nodeType & NT_ACTARG) { //node of actual method parameter @@ -2390,14 +2396,21 @@ if (cgn->nodeType==NT_RETVAL) { inst = cgn->nInst; if (inst->getOpcode()==Op_IndirectMemoryCall) { - MethodDesc* md; + MethodDesc* md = NULL; if (inst->getSrc(0)->getInst()->getOpcode()== Op_LdVar) { md = inst->getSrc(0)->getType()->asMethodPtrType()->getMethodDesc(); } else { - md = inst->getSrc(0)->getInst()->asMethodInst()->getMethodDesc(); + if ( inst->getSrc(0)->getInst()->asMethodInst() ) { + md = inst->getSrc(0)->getInst()->asMethodInst()->getMethodDesc(); + } } - os << text << " "; - md->printFullName(os); os << std::endl; + os << text << " "; + if (md) { + md->printFullName(os); + } else { + os << "logging error"; + } + os << std::endl; } } if (cgn->nodeType==NT_LDOBJ && getEscState(cgn)!=GLOBAL_ESCAPE) {