From 8ed9c732768e93da7736bc978d92094f5ef15436 Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 6 Mar 1999 21:42:03 +0000 Subject: [PATCH] preserveRule fixing git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@321 379699f6-c40d-0410-875b-85095c16579e --- jode/jode/obfuscator/ClassIdentifier.java | 26 ++++++++--------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/jode/jode/obfuscator/ClassIdentifier.java b/jode/jode/obfuscator/ClassIdentifier.java index 391bb50..e355f1f 100644 --- a/jode/jode/obfuscator/ClassIdentifier.java +++ b/jode/jode/obfuscator/ClassIdentifier.java @@ -31,7 +31,6 @@ public class ClassIdentifier extends Identifier { ClassInfo info; boolean willStrip; - int preserveRule; int fieldCount; /* The first fieldCount are of type FieldIdentifier, the remaining * are MethodIdentifier @@ -47,12 +46,6 @@ public class ClassIdentifier extends Identifier { this.pack = pack; this.name = name; this.info = info; - - preserveRule = bundle.preserveRule; - if ((preserveRule & (info.getModifiers() ^ Modifier.PRIVATE)) != 0) { - setReachable(); - setPreserved(); - } } public void addSubClass(ClassIdentifier ci) { @@ -73,6 +66,15 @@ public class ClassIdentifier extends Identifier { } } + public void applyPreserveRule(int preserveRule) { + if ((preserveRule & (info.getModifiers() ^ Modifier.PRIVATE)) != 0) { + setReachable(); + setPreserved(); + } + for (int i=0; i< identifiers.length; i++) + identifiers[i].applyPreserveRule(preserveRule); + } + public void reachableIdentifier(String name, String typeSig, boolean isVirtual) { for (int i=0; i < identifiers.length; i++) { @@ -208,20 +210,10 @@ public class ClassIdentifier extends Identifier { identifiers = new Identifier[finfos.length + minfos.length]; for (int i=0; i< fieldCount; i++) { identifiers[i] = new FieldIdentifier(this, finfos[i]); - if ((preserveRule & (finfos[i].getModifiers() ^ Modifier.PRIVATE)) - != 0) { - identifiers[i].setReachable(); - identifiers[i].setPreserved(); - } } for (int i=0; i< minfos.length; i++) { identifiers[fieldCount + i] = new MethodIdentifier(this, minfos[i]); - if ((preserveRule & (minfos[i].getModifiers() ^ Modifier.PRIVATE)) - != 0) { - identifiers[i].setReachable(); - identifiers[i].setPreserved(); - } if (identifiers[i].getName().equals("")) identifiers[i].setPreserved(); }