From: <fra...@us...> - 2009-07-01 04:40:01
|
Revision: 1708 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=1708&view=rev Author: frankrimlinger Date: 2009-07-01 04:39:26 +0000 (Wed, 01 Jul 2009) Log Message: ----------- Bug #1 was that the branch from an invocation instruction to the ACATCHHANDLER was not fed to the choice generated, so the SCANNER never had a chance to scan the exception handler code. There is a subtle point here. If you feed a branch to the choice generator, then updateMangoModel will be called automatically for that branch, so DO NOT call it directly. On the other hand, the branch from an invocation to the (potentially) called routine(s) are NOT passed to the choice generator since method entrypoints are handled separately by the TargetChoiceGenerator. So for these branches, you MUST call updateMangoModel directly. Bug #2 was that the ACATCHHANDLER execute routine was just returning null. What it is supposed to do is feed the branches to the choice generated that were created by the invocation instruction buildFormalPeer call to createACatchHandlerBranching(). Ditto for ATHROWCREATOR The fix for bug#2 is in place. Bug#1 is harder because it involves some tricky chicken-and-egg issues. This fix is in progress. Some parts of the returnPointLink mechanism appear to be obsolete in the C++ code. Some parts of the returnPointLink mechanism are definitely still functional. Eventually this murky issue must be unravelled. Modified Paths: -------------- branches/mango/Mango/Mango/src/mango/worker/Mango.java branches/mango/MangoJPF/Mango/src/mango/worker/Mango.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/InvocationUtil.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/MangoInstruction.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/MangoInvokeInstruction.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/ACATCHHANDLER.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/ATHROWCREATOR.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/ATHROWHANDLER.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/INVOKECLINIT.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/INVOKEINTERFACE.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/INVOKESPECIAL.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/INVOKESTATIC.java branches/mango/MangoJPF/javapathfinder-mango-bridge/mango/scanner/bytecode/INVOKEVIRTUAL.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |