[Fb-contrib-commit] SF.net SVN: fb-contrib: [439] trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/det
Brought to you by:
dbrosius
From: <dbr...@us...> - 2006-04-11 14:28:48
|
Revision: 439 Author: dbrosius Date: 2006-04-11 07:28:33 -0700 (Tue, 11 Apr 2006) ViewCVS: http://svn.sourceforge.net/fb-contrib/?rev=439&view=rev Log Message: ----------- reduce cyclomatic complexity Modified Paths: -------------- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/UnnecessaryStoreBeforeReturn.java Modified: trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/UnnecessaryStoreBeforeReturn.java =================================================================== --- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/UnnecessaryStoreBeforeReturn.java 2006-04-11 14:15:45 UTC (rev 438) +++ trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/UnnecessaryStoreBeforeReturn.java 2006-04-11 14:28:33 UTC (rev 439) @@ -112,25 +112,8 @@ int loadReg; switch (state) { case SEEN_NOTHING: - if ((seen >= ISTORE) && (seen <= ASTORE)) { - storeReg = getRegisterOperand(); + if (lookForStore(seen)) state = SEEN_STORE; - } else if ((seen >= ISTORE_0) && (seen <= ISTORE_3)) { - storeReg = seen - ISTORE_0; - state = SEEN_STORE; - } else if ((seen >= LSTORE_0) && (seen <= LSTORE_3)) { - storeReg = seen - LSTORE_0; - state = SEEN_STORE; - } else if ((seen >= FSTORE_0) && (seen <= FSTORE_3)) { - storeReg = seen - FSTORE_0; - state = SEEN_STORE; - } else if ((seen >= DSTORE_0) && (seen <= DSTORE_3)) { - storeReg = seen - DSTORE_0; - state = SEEN_STORE; - } else if ((seen >= ASTORE_0) && (seen <= ASTORE_3)) { - storeReg = seen - ASTORE_0; - state = SEEN_STORE; - } break; case SEEN_STORE: @@ -139,26 +122,7 @@ return; } - if ((seen >= ILOAD) && (seen <= ALOAD)) { - loadReg = getRegisterOperand(); - state = (storeReg == loadReg) ? SEEN_LOAD : SEEN_NOTHING; - } else if ((seen >= ILOAD_0) && (seen <= ILOAD_3)) { - loadReg = seen - ILOAD_0; - state = (storeReg == loadReg) ? SEEN_LOAD : SEEN_NOTHING; - } else if ((seen >= LLOAD_0) && (seen <= LLOAD_3)) { - loadReg = seen - LLOAD_0; - state = (storeReg == loadReg) ? SEEN_LOAD : SEEN_NOTHING; - } else if ((seen >= FLOAD_0) && (seen <= FLOAD_3)) { - loadReg = seen - FLOAD_0; - state = (storeReg == loadReg) ? SEEN_LOAD : SEEN_NOTHING; - } else if ((seen >= DLOAD_0) && (seen <= DLOAD_3)) { - loadReg = seen - DLOAD_0; - state = (storeReg == loadReg) ? SEEN_LOAD : SEEN_NOTHING; - } else if ((seen >= ALOAD_0) && (seen <= ALOAD_3)) { - loadReg = seen - ALOAD_0; - state = (storeReg == loadReg) ? SEEN_LOAD : SEEN_NOTHING; - } else - state = SEEN_NOTHING; + state = lookForLoad(seen) ? SEEN_LOAD : SEEN_NOTHING; break; case SEEN_LOAD: @@ -177,5 +141,54 @@ } } - + + /** + * checks if the curent opcode is a store, if so saves the register + * + * @param seen the opcode of the currently parsed instruction + * @return if a store was seen + */ + private boolean lookForStore(int seen) { + if ((seen >= ISTORE) && (seen <= ASTORE)) + storeReg = getRegisterOperand(); + else if ((seen >= ISTORE_0) && (seen <= ISTORE_3)) + storeReg = seen - ISTORE_0; + else if ((seen >= LSTORE_0) && (seen <= LSTORE_3)) + storeReg = seen - LSTORE_0; + else if ((seen >= FSTORE_0) && (seen <= FSTORE_3)) + storeReg = seen - FSTORE_0; + else if ((seen >= DSTORE_0) && (seen <= DSTORE_3)) + storeReg = seen - DSTORE_0; + else if ((seen >= ASTORE_0) && (seen <= ASTORE_3)) + storeReg = seen - ASTORE_0; + else + return false; + return true; + } + + /** + * looks for a load of the register that was just stored + * + * @param seen the opcode of the currently parsed instruction + * @return if the load was seen + */ + private boolean lookForLoad(int seen) { + int loadReg; + if ((seen >= ILOAD) && (seen <= ALOAD)) + loadReg = getRegisterOperand(); + else if ((seen >= ILOAD_0) && (seen <= ILOAD_3)) + loadReg = seen - ILOAD_0; + else if ((seen >= LLOAD_0) && (seen <= LLOAD_3)) + loadReg = seen - LLOAD_0; + else if ((seen >= FLOAD_0) && (seen <= FLOAD_3)) + loadReg = seen - FLOAD_0; + else if ((seen >= DLOAD_0) && (seen <= DLOAD_3)) + loadReg = seen - DLOAD_0; + else if ((seen >= ALOAD_0) && (seen <= ALOAD_3)) + loadReg = seen - ALOAD_0; + else + return false; + + return (storeReg == loadReg); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |