From: <pcm...@us...> - 2008-08-20 20:08:59
|
Revision: 964 http://javapathfinder.svn.sourceforge.net/javapathfinder/?rev=964&view=rev Author: pcmehlitz Date: 2008-08-20 20:08:51 +0000 (Wed, 20 Aug 2008) Log Message: ----------- * moved MethodInfo attributes to flag fields (like Field/Class/ElementInfo). That just makes it easier to add new attributes, of which we have two new ones: EXEC_HIDDEN and FIREWALL. The first one is used for methods that are not only executed atomically, but should also not appear in the path. The second one is for methods that should act as exception firewalls, i.e. turn JPF-executed exceptions into UnhandledException throws. That's for all methods which should not let exceptions pass in lower stack frames, mostly because they aren't called by them (like clinit or other direct calls) * streamlined ThreadInfo.throwException to use these attributes * since we can now have UnhandledExceptions in code we still want to continue from, we also need a way to clear the pendingException, the NoUnhandledExceptionProperty, drop frames and advance the pc in the topframe (or else we run the danger of infinite loops) * with that, improved the code for atomic round trips (i.e. atomically executing bytecode by JPF from listeners or native peers). This is still a dangerous feature, but - if supported - should leave the choice of path-hidden execution and exception handling to the host-VM executed code that starts it. Still the same restrictions like for executeMethodAtomic apply. See TestNativePeerJPF for examples (hidden exec with and w/o exceptions) Modified Paths: -------------- trunk/src/gov/nasa/jpf/jvm/MethodInfo.java trunk/src/gov/nasa/jpf/jvm/StackFrame.java trunk/src/gov/nasa/jpf/jvm/ThreadInfo.java trunk/src/gov/nasa/jpf/test/Satisfies.java trunk/test/gov/nasa/jpf/jvm/JPF_gov_nasa_jpf_jvm_TestNativePeer.java trunk/test/gov/nasa/jpf/jvm/TestNativePeer.java trunk/test/gov/nasa/jpf/jvm/TestNativePeerJPF.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |