Bläddra i källkod

fixes a bug of javassist.bytecode.stackmap, which was reported as Issue #328.

tags/rel_3_28_0_ga
chibash 3 år sedan
förälder
incheckning
da043b46bc

Binär
javassist.jar Visa fil


+ 12
- 2
src/main/javassist/bytecode/stackmap/TypeData.java Visa fil

} }


@Override @Override
public boolean eq(TypeData d) { return getName().equals(d.getName()); }
public boolean eq(TypeData d) {
if (d.isUninit())
return d.eq(this);
else
return getName().equals(d.getName());
}
} }


/* a type variable representing a class type or a basic type. /* a type variable representing a class type or a basic type.
} }


@Override @Override
public boolean eq(TypeData d) { return name.equals(d.getName()); }
public boolean eq(TypeData d) {
if (d.isUninit())
return d.eq(this);
else
return name.equals(d.getName());
}


@Override @Override
public void setType(String typeName, ClassPool cp) throws BadBytecode {} public void setType(String typeName, ClassPool cp) throws BadBytecode {}

+ 18
- 0
src/test/javassist/bytecode/StackMapTest.java Visa fil

import javassist.ClassPool; import javassist.ClassPool;
import javassist.CodeConverter; import javassist.CodeConverter;
import javassist.CtClass; import javassist.CtClass;
import javassist.CtConstructor;
import javassist.CtMethod; import javassist.CtMethod;
import javassist.CtNewConstructor; import javassist.CtNewConstructor;
import javassist.CtNewMethod; import javassist.CtNewMethod;


return null; return null;
} }

public static class C7 {
public int value;
public static int value2;
public C7() { this(3); }
public C7(int i) {
value = i;
}
}

public void testIssue328() throws Exception {
CtClass cc = loader.get("javassist.bytecode.StackMapTest$C7");
CtConstructor cons = cc.getDeclaredConstructor(new CtClass[] { CtClass.intType });
cons.insertBefore("if ($1 < 0) { super(); if (value2 > 0) { value2++; } return; }");
cc.writeFile();
Object t1 = make(cc.getName());
}
} }

Laddar…
Avbryt
Spara