[Fb-contrib-commit] fb-contrib/src/com/mebigfatguy/fbcontrib/detect NeedlessInstanceRetrieval.java,1
Brought to you by:
dbrosius
From: Dave B. <dbr...@us...> - 2006-02-05 08:10:41
|
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; |