if (fc.getReturnTemp()!=null)
output.print(generateTemp(fm,fc.getReturnTemp())+"=");
-
if (md.isStatic()||md.getReturnType()==null||singleCall(fc.getThis().getType().getClassDesc(),md)) {
output.print(cn.getSafeSymbol()+md.getSafeSymbol()+"_"+md.getSafeMethodDescriptor());
} else {
private void createTables() {
supertable=new Hashtable();
- subclasstable=new Hashtable();
Iterator classit=state.getClassSymbolTable().getDescriptorsIterator();
while(classit.hasNext()) {
ClassDescriptor cd_super=getClass(superc);
supertable.put(cd,cd_super);
}
-
+ }
+ }
+
+ public void createFullTable() {
+ subclasstable=new Hashtable();
+
+ Iterator classit=state.getClassSymbolTable().getDescriptorsIterator();
+ while(classit.hasNext()) {
+ ClassDescriptor cd=(ClassDescriptor)classit.next();
ClassDescriptor tmp=cd.getSuperDesc();
+
while(tmp!=null) {
if (!subclasstable.containsKey(tmp))
subclasstable.put(tmp,new HashSet());