jode/bytecode/FieldInfo.java, jode/bytecode/BytecodeInfo.java.in:
(readAttribute): Never read in known attributes as unknown
attributes. This could happen before when class was first read with
known info and then again with all info.
jode/obfuscator/ClassIdentifier.java: (doTransformation): Remove
all unknown attributes. They may contain references to
nonexisting constant pool entries.
jode/obfuscator/PackageIdentifier.java: (loadClass): Fix a
compile time bug in the last patch.
git-svn-id: https://svn.code.sf.net/p/jode/code/branches/branch_1_1@1407 379699f6-c40d-0410-875b-85095c16579e
Bug fix: Added missing checks for STRIP_UNREACH.
* jode/obfuscator/MethodIdentifier.java.in (doTransformation):
Don't run analyzer on unreachable methods. Previously the
ConstantAnalyzer assumed that the instructions are not reachable
and removed them all leading to illegal bytecode.
git-svn-id: https://svn.code.sf.net/p/jode/code/branches/branch_1_1@1361 379699f6-c40d-0410-875b-85095c16579e
Bug fix: Check whether store is already a op-assign and break out.
* jode/expr/StoreInstruction.java (isOpAssign): New function to
check whether this is an op-assign.
git-svn-id: https://svn.code.sf.net/p/jode/code/branches/branch_1_1@1357 379699f6-c40d-0410-875b-85095c16579e
* jode/obfuscator/ClassIdentifier.java.in (isSerializable):
The Serializable interface lives in java.io not in java.lang.
* jode/obfuscator/modules/SerializePreserver.java.in:
This class needs to implement OptionHandler.
git-svn-id: https://svn.code.sf.net/p/jode/code/branches/branch_1_1@1356 379699f6-c40d-0410-875b-85095c16579e
* jode/obfuscator/Identifier.java.in (writeTable): New boolean
parameter specifying if reversed or not.
* jode/obfuscator/ClassBundle.java.in: Renamed the table file
variables, added outTableFile.
(setOption): Support outtable, intable and outrevtable.
Support verbose.
(writeTable): Writes table unreversed.
(writeRevTable): New method, Writes table reversed.
* jode/obfuscator/Main.java.in: (rand): New variable.
* jode/obfuscator/PackageIdentifier.java.in: Use Main.rand instead
of definining its own random.
* jode/obfuscator/ClassIdentifier.java.in: likewise.
git-svn-id: https://svn.code.sf.net/p/jode/code/branches/branch_1_1@1344 379699f6-c40d-0410-875b-85095c16579e
Ported fix from ConstantAnalyzer:
(canonizeReference): for interfaces call canonizeIfaceReference.
(canonizeIfaceReference): new method.
* jode/obfuscator/modules/ConstantAnalyzer.java.in:
made sub class of SimpleAnalyzer.
(canonizeReference): Removed, since its inherited.
(canonizeIfaceReference): dito.
git-svn-id: https://svn.code.sf.net/p/jode/code/branches/branch_1_1@1325 379699f6-c40d-0410-875b-85095c16579e
uninitialized objects in local or stack slots on backwards jump or
exception blocks. Sun's jdk also doesn't check it, and I never
understood why it is necessary. But see JVM Spec 4.9.4.
git-svn-id: https://svn.code.sf.net/p/jode/code/branches/branch_1_1@1314 379699f6-c40d-0410-875b-85095c16579e
-e is not supported on all architectures (Solaris) and -f is more
correct anyway.
Reported by Erik Modin <Erik.Moden@emw.ericsson.se>.
git-svn-id: https://svn.code.sf.net/p/jode/code/branches/branch_1_1@1309 379699f6-c40d-0410-875b-85095c16579e
Add 2001 to copyright years.
Better JSR/synchronized handling (see Changelog)
Better .class field handling
Fixed memory usage of UnifyHash.
Fixed moving of field initializers.
git-svn-id: https://svn.code.sf.net/p/jode/code/branches/branch_1_1@1298 379699f6-c40d-0410-875b-85095c16579e