Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6070/src/com/mebigfatguy/fbcontrib/detect
Modified Files:
NeedlessInstanceRetrieval.java
Log Message:
the jdk generates lame code that follows this pattern using object.getClass() invokes followed by pops. So final member accesses fail. So ignore getClass calls.
Index: NeedlessInstanceRetrieval.java
===================================================================
RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/NeedlessInstanceRetrieval.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- NeedlessInstanceRetrieval.java 5 Feb 2006 02:11:54 -0000 1.3
+++ NeedlessInstanceRetrieval.java 5 Feb 2006 08:10:33 -0000 1.4
@@ -85,8 +85,10 @@
String sig = getSigConstantOperand();
Type retType = Type.getReturnType(sig);
if (retType.getSignature().startsWith("L")) {
- invokePC = getPC();
- state = SEEN_INVOKE;
+ if (!"java/lang/Object".equals(getClassConstantOperand())) {
+ invokePC = getPC();
+ state = SEEN_INVOKE;
+ }
}
}
break;
|