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.
|