From 9a58e16d4c0dd5de2cea1e2e93e85b3c55ca07f3 Mon Sep 17 00:00:00 2001 From: jochen Date: Sun, 7 Mar 1999 19:06:30 +0000 Subject: [PATCH] bug fix: setAlias even if representative is stripped git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@339 379699f6-c40d-0410-875b-85095c16579e --- jode/jode/obfuscator/Identifier.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/jode/jode/obfuscator/Identifier.java b/jode/jode/obfuscator/Identifier.java index 3e8655a..d583806 100644 --- a/jode/jode/obfuscator/Identifier.java +++ b/jode/jode/obfuscator/Identifier.java @@ -33,6 +33,7 @@ public abstract class Identifier { private boolean preserved = false; private String alias = null; + private boolean wasAliased = false; public Identifier(String alias) { this.alias = alias; @@ -156,11 +157,14 @@ public abstract class Identifier { if (isPreserved()) { if (Obfuscator.isDebugging) Obfuscator.err.println(toString() + " is preserved"); - } else if (isRepresentative() - && renameRule != Obfuscator.RENAME_NONE) { + } else if (renameRule != Obfuscator.RENAME_NONE) { + Identifier rep = getRepresentative(); + if (rep.wasAliased) + return; + rep.wasAliased = true; if (renameRule == Obfuscator.RENAME_UNIQUE) - setAlias("xxx" + serialnr++); + rep.setAlias("xxx" + serialnr++); else { StringBuffer newAlias = new StringBuffer(); next_alias: @@ -194,7 +198,7 @@ public abstract class Identifier { newAlias.append(renameRule == Obfuscator.RENAME_WEAK && newAlias.length() == 0 ? "A": "0"); } while (false); - Identifier ptr = this; + Identifier ptr = rep; while (ptr != null) { if (ptr.conflicting(newAlias.toString(), renameRule @@ -202,7 +206,7 @@ public abstract class Identifier { continue next_alias; ptr = ptr.right; } - alias = newAlias.toString(); + setAlias(newAlias.toString()); return; } }