Thread: [Fb-contrib-commit] SF.net SVN: fb-contrib: [813] trunk/fb-contrib/src/com/mebigfatguy/ fbcontrib/ (Page 2)
Brought to you by:
dbrosius
From: <dbr...@us...> - 2007-02-01 08:01:56
|
Revision: 813 http://svn.sourceforge.net/fb-contrib/?rev=813&view=rev Author: dbrosius Date: 2007-02-01 00:01:57 -0800 (Thu, 01 Feb 2007) Log Message: ----------- 1.4 compat Modified Paths: -------------- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java Modified: trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java =================================================================== --- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java 2007-02-01 08:01:15 UTC (rev 812) +++ trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java 2007-02-01 08:01:57 UTC (rev 813) @@ -424,7 +424,7 @@ if (stores == null) stores = new HashMap<Integer, Integer>(); - stores.put(Integer.valueOf(reg), Integer.valueOf(pc)); + stores.put(Integer14.valueOf(reg), Integer14.valueOf(pc)); } /** @@ -437,7 +437,7 @@ if (loads == null) loads = new HashMap<Integer, Integer>(); - loads.put(Integer.valueOf(reg), Integer.valueOf(pc)); + loads.put(Integer14.valueOf(reg), Integer14.valueOf(pc)); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-03-14 05:34:01
|
Revision: 999 http://fb-contrib.svn.sourceforge.net/fb-contrib/?rev=999&view=rev Author: dbrosius Date: 2008-03-13 22:34:06 -0700 (Thu, 13 Mar 2008) Log Message: ----------- Fix for [ 1913557 ] FalsePositive BAS, IINC needs to count as a store and a load Modified Paths: -------------- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java Modified: trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java =================================================================== --- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java 2008-03-14 04:58:39 UTC (rev 998) +++ trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java 2008-03-14 05:34:06 UTC (rev 999) @@ -160,6 +160,32 @@ else ignoreRegs.add(iReg); } + } else if (seen == IINC) { + int reg = getRegisterOperand(); + Integer iReg = Integer14.valueOf(reg); + if (!ignoreRegs.contains(iReg)) { + ScopeBlock sb = findScopeBlock(rootScopeBlock, getPC()); + if (sb != null) + sb.addLoad(reg, getPC()); + else + ignoreRegs.add(iReg); + } + int pc = getPC(); + if (catchHandlers.contains(Integer14.valueOf(pc))) + ignoreRegs.add(iReg); + else if (sawNull) + ignoreRegs.add(iReg); + + if (!ignoreRegs.contains(iReg)) { + ScopeBlock sb = findScopeBlock(rootScopeBlock, pc); + if (sb != null) { + sb.addStore(reg, pc); + if (sawDup) + sb.addLoad(reg, pc); + } + else + ignoreRegs.add(iReg); + } } else if ((seen == ALOAD) || (seen == ILOAD) || (seen == LLOAD) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-03-15 04:46:46
|
Revision: 1003 http://fb-contrib.svn.sourceforge.net/fb-contrib/?rev=1003&view=rev Author: dbrosius Date: 2008-03-14 21:46:51 -0700 (Fri, 14 Mar 2008) Log Message: ----------- Fix for [ 1914320 ] FalsePositive Bloated Assignment Scope Modified Paths: -------------- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java Modified: trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java =================================================================== --- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java 2008-03-15 04:22:17 UTC (rev 1002) +++ trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java 2008-03-15 04:46:51 UTC (rev 1003) @@ -50,6 +50,7 @@ private ScopeBlock rootScopeBlock; private Set<Integer> catchHandlers; private Set<Integer> switchTargets; + private List<Integer> monitorSyncPCs; private boolean dontReport; private boolean sawDup; private boolean sawNull; @@ -74,11 +75,13 @@ ignoreRegs = new HashSet<Integer>(); catchHandlers = new HashSet<Integer>(); switchTargets = new HashSet<Integer>(); + monitorSyncPCs = new ArrayList<Integer>(); super.visitClassContext(classContext); } finally { ignoreRegs = null; catchHandlers = null; switchTargets = null; + monitorSyncPCs = null; } } @@ -147,6 +150,8 @@ int pc = getPC(); if (catchHandlers.contains(Integer14.valueOf(pc))) ignoreRegs.add(iReg); + else if (monitorSyncPCs.size() > 0) + ignoreRegs.add(iReg); else if (sawNull) ignoreRegs.add(iReg); @@ -173,6 +178,8 @@ int pc = getPC(); if (catchHandlers.contains(Integer14.valueOf(pc))) ignoreRegs.add(iReg); + else if (monitorSyncPCs.size() > 0) + ignoreRegs.add(iReg); else if (sawNull) ignoreRegs.add(iReg); @@ -270,7 +277,12 @@ if ("wasNull".equals(getNameConstantOperand()) && "()Z".equals(getSigConstantOperand())) dontReport = true; - } + } else if (seen == MONITORENTER) { + monitorSyncPCs.add(Integer14.valueOf(getPC())); + } else if (seen == MONITOREXIT) { + if (monitorSyncPCs.size() > 0) + monitorSyncPCs.remove(monitorSyncPCs.size() - 1); + } sawDup = (seen == DUP); sawNull = (seen == ACONST_NULL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |