diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2008-09-02 22:00:23 +0000 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2008-09-02 22:00:23 +0000 |
commit | 38a8042079b187f53de9139939c8885e96c6212e (patch) | |
tree | 163b046d63677357dcf0ede8e3d2cdb64ee2de85 /tools | |
parent | b606d2e809c065a4727b027ed862c50af8de9c29 (diff) | |
download | classpath-38a8042079b187f53de9139939c8885e96c6212e.tar.gz |
2008-09-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
* tools/gnu/classpath/tools/javah/ClassWrapper.java:
(makeVtable()): Populate methodNameMap.
(printMethods(CniPrintStream)): Always use pre-populated
methodNameMap for bridge targets.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/gnu/classpath/tools/javah/ClassWrapper.java | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/tools/gnu/classpath/tools/javah/ClassWrapper.java b/tools/gnu/classpath/tools/javah/ClassWrapper.java index 2172628a6..43f31a2fd 100644 --- a/tools/gnu/classpath/tools/javah/ClassWrapper.java +++ b/tools/gnu/classpath/tools/javah/ClassWrapper.java @@ -217,7 +217,18 @@ public class ClassWrapper MethodNode m = (MethodNode) i.next(); String desc = MethodHelper.getBridgeTarget(m); if (desc != null) - bridgeTargets.add(m.name + desc); + { + String sum = m.name + desc; + boolean newTarget = bridgeTargets.add(sum); + if (newTarget) + { + // Bridge target that is new in this class. + String cname = this.name; + int index = cname.lastIndexOf('/'); + cname = cname.substring(index + 1); + methodNameMap.put(sum, cname + "$" + m.name); + } + } } } @@ -247,18 +258,7 @@ public class ClassWrapper String nameToUse; String sum = m.name + m.desc; if (bridgeTargets.contains(sum)) - { - if (methodNameMap.containsKey(sum)) - nameToUse = (String) methodNameMap.get(sum); - else - { - // Bridge target that is new in this class. - String cname = this.name; - int index = cname.lastIndexOf('/'); - cname = cname.substring(index + 1); - nameToUse = cname + "$" + m.name; - } - } + nameToUse = (String) methodNameMap.get(sum); else nameToUse = Keywords.getCxxName(m.name); methodNameMap.put(sum, nameToUse); |