[Fb-contrib-commit] SF.net SVN: fb-contrib:[1142] trunk/fb-contrib/src/com/mebigfatguy/ fbcontrib/
Brought to you by:
dbrosius
From: <dbr...@us...> - 2009-03-16 03:01:08
|
Revision: 1142 http://fb-contrib.svn.sourceforge.net/fb-contrib/?rev=1142&view=rev Author: dbrosius Date: 2009-03-16 03:01:00 +0000 (Mon, 16 Mar 2009) Log Message: ----------- remove some more fps due to crazy jdk6 finally block generations Modified Paths: -------------- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/LostExceptionStackTrace.java Modified: trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/LostExceptionStackTrace.java =================================================================== --- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/LostExceptionStackTrace.java 2009-03-15 04:28:50 UTC (rev 1141) +++ trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/LostExceptionStackTrace.java 2009-03-16 03:01:00 UTC (rev 1142) @@ -67,6 +67,7 @@ private CodeException[] exceptions; private Set<CatchInfo> catchInfos; private Map<Integer, Boolean> exReg; + private boolean lastWasExitPoint = false; /** * constructs a LEST detector given the reporter to report bugs on @@ -134,6 +135,7 @@ catchInfos.clear(); exceptions = collectExceptions(obj.getExceptionTable()); exReg.clear(); + lastWasExitPoint = false; super.visitCode(obj); } } @@ -255,6 +257,12 @@ } } } else if ((seen == ASTORE) || ((seen >= ASTORE_0) && (seen <= ASTORE_3))) { + if (lastWasExitPoint) { + //crazy jdk6 finally block injection -- shut off detection + catchInfos.clear(); + break; + } + if (stack.getStackDepth() > 0) { OpcodeStack.Item itm = stack.getStackItem(0); int reg = RegisterUtils.getAStoreReg(this, seen); @@ -279,6 +287,8 @@ it.remove(); } } + + lastWasExitPoint = ((seen >= IRETURN) && (seen <= RETURN)) || (seen == GOTO) || (seen == GOTO_W); } finally { stack.sawOpcode(this, seen); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |