Skip to content

Commit d08872b

Browse files
committed
More tidy up from asm5 change.
1 parent 4560597 commit d08872b

13 files changed

Lines changed: 45 additions & 44 deletions

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/Instrumenter.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,8 @@ private static byte[] instrumentClass(InputStream is) {
116116

117117
ClassWriter cw = new InstrumenterClassWriter(cr, ClassWriter.COMPUTE_MAXS
118118
| ClassWriter.COMPUTE_FRAMES, loader);
119-
NonDeterministicLoggingClassVisitor cv = new NonDeterministicLoggingClassVisitor(
120-
Opcodes.ASM5, cw);
121-
CallbackDuplicatingClassVisitor callbackDuplicator = new CallbackDuplicatingClassVisitor(
122-
Opcodes.ASM5, cv);
119+
NonDeterministicLoggingClassVisitor cv = new NonDeterministicLoggingClassVisitor(cw);
120+
CallbackDuplicatingClassVisitor callbackDuplicator = new CallbackDuplicatingClassVisitor(cv);
123121

124122
cr.accept(callbackDuplicator, ClassReader.EXPAND_FRAMES);
125123
if (methodCalls.containsKey(cv.getClassName()))

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/replay/FinalizerReplayingMethodVisitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ public class FinalizerReplayingMethodVisitor extends MethodVisitor {
1212

1313
private String className;
1414

15-
public FinalizerReplayingMethodVisitor(int api, MethodVisitor mv, String name, String desc,
15+
public FinalizerReplayingMethodVisitor(MethodVisitor mv, String name, String desc,
1616
String className) {
17-
super(api, mv);
17+
super(Opcodes.ASM5, mv);
1818
this.isFinalize = (name.equals("finalize")) && desc.equals("()V");
1919
this.className = className;
2020
}

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/replay/NonDeterministicReplayClassVisitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public MethodVisitor visitMethod(int acc, String name, String desc, String signa
5555
{
5656

5757
MethodVisitor smv = cv.visitMethod(acc, name, desc, signature, exceptions);
58-
FinalizerReplayingMethodVisitor fmv = new FinalizerReplayingMethodVisitor(acc, smv,
58+
FinalizerReplayingMethodVisitor fmv = new FinalizerReplayingMethodVisitor(smv,
5959
name, desc, this.className);
6060
AnalyzerAdapter analyzer = new AnalyzerAdapter(className, acc, name, desc, fmv);
6161
LocalVariablesSorter sorter = new LocalVariablesSorter(acc, desc, analyzer);

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/replay/ReplayUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ public static int getNextIndexO(HashMap replayIndexMap, String[] threadEntries,
8282

8383
checkForDispatch();
8484
if (threadEntries[r] == null)
85+
{
86+
System.err.println("Replay log ended in thread " + threadName);
8587
System.exit(-1);
88+
}
8689
if (threadEntries[r].equals(threadName)) {
8790
replayIndexMap.put(threadName, r);
8891
return r;

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/visitor/CallbackDuplicatingClassVisitor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ public void visit(int version, int access, String name, String signature, String
2828
this.className = name;
2929
}
3030

31-
public CallbackDuplicatingClassVisitor(int api, ClassVisitor cv) {
32-
super(api, cv);
31+
public CallbackDuplicatingClassVisitor(ClassVisitor cv) {
32+
super(Opcodes.ASM5, cv);
3333
}
3434

3535
private HashSet<MethodNode> methodsToGenerateLogging = new HashSet<MethodNode>();
@@ -50,10 +50,10 @@ public void visitEnd() {
5050
// mn.name = "BBB"+mn.name;
5151
MethodVisitor mv = super.visitMethod(mn.access, mn.name, mn.desc, mn.signature,
5252
(String[]) mn.exceptions.toArray(new String[0]));
53-
CloningAdviceAdapter caa = new CloningAdviceAdapter(Opcodes.ASM5, mv, mn.access,
53+
CloningAdviceAdapter caa = new CloningAdviceAdapter(mv, mn.access,
5454
mn.name, mn.desc, className);
5555
LocalVariablesSorter lvsorter = new LocalVariablesSorter(mn.access, mn.desc, mv);
56-
CallbackLoggingMethodVisitor clmv = new CallbackLoggingMethodVisitor(api, mv,
56+
CallbackLoggingMethodVisitor clmv = new CallbackLoggingMethodVisitor(mv,
5757
mn.access, mn.name, mn.desc, className, lvsorter, caa);
5858
caa.setLocalVariableSorter(lvsorter);
5959

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/visitor/CallbackLoggingMethodVisitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ public class CallbackLoggingMethodVisitor extends AdviceAdapter implements Opcod
2525

2626
private CloningAdviceAdapter caa;
2727

28-
public CallbackLoggingMethodVisitor(int api, MethodVisitor mv, int access, String name,
28+
public CallbackLoggingMethodVisitor(MethodVisitor mv, int access, String name,
2929
String desc, String classname, LocalVariablesSorter lvsorter, CloningAdviceAdapter caa) {
30-
super(api, mv, access, name, desc);
30+
super(Opcodes.ASM5, mv, access, name, desc);
3131
this.className = classname;
3232
this.methodName = name;
3333
this.methodDesc = desc;

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/visitor/CloningAdviceAdapter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ public class CloningAdviceAdapter extends GeneratorAdapter implements Opcodes {
6363

6464
private LocalVariablesSorter lvsorter;
6565

66-
public CloningAdviceAdapter(int api, MethodVisitor mv, int access, String name, String desc,
66+
public CloningAdviceAdapter(MethodVisitor mv, int access, String name, String desc,
6767
String classname) {
68-
super(api, mv, access, name, desc);
68+
super(Opcodes.ASM5, mv, access, name, desc);
6969
}
7070

7171
/**

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/visitor/FinalizerLoggingMethodVisitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ public class FinalizerLoggingMethodVisitor extends MethodVisitor {
1212

1313
private String className;
1414

15-
public FinalizerLoggingMethodVisitor(int api, MethodVisitor mv, String name, String desc,
15+
public FinalizerLoggingMethodVisitor(MethodVisitor mv, String name, String desc,
1616
String className) {
17-
super(api, mv);
17+
super(Opcodes.ASM5, mv);
1818
this.isFinalize = (name.equals("finalize")) && desc.equals("()V");
1919
this.className = className;
2020
}

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/visitor/MainLoggingMethodVisitor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package edu.columbia.cs.psl.chroniclerj.visitor;
33

44
import org.objectweb.asm.MethodVisitor;
5+
import org.objectweb.asm.Opcodes;
56
import org.objectweb.asm.Type;
67
import org.objectweb.asm.commons.AdviceAdapter;
78
import org.objectweb.asm.commons.Method;
@@ -12,9 +13,9 @@ public class MainLoggingMethodVisitor extends AdviceAdapter {
1213

1314
private String className;
1415

15-
protected MainLoggingMethodVisitor(int api, MethodVisitor mv, int access, String name,
16+
protected MainLoggingMethodVisitor(MethodVisitor mv, int access, String name,
1617
String desc, String className) {
17-
super(api, mv, access, name, desc);
18+
super(Opcodes.ASM5, mv, access, name, desc);
1819
this.className = className;
1920
}
2021

Code/ChroniclerJ/src/main/java/edu/columbia/cs/psl/chroniclerj/visitor/NonDeterministicLoggingClassVisitor.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@ public class NonDeterministicLoggingClassVisitor extends ClassVisitor implements
4747
}
4848
}
4949

50-
public NonDeterministicLoggingClassVisitor(int api, ClassVisitor cv) {
51-
super(api, cv);
52-
50+
public NonDeterministicLoggingClassVisitor(ClassVisitor cv) {
51+
super(Opcodes.ASM5, cv);
5352
}
5453

5554
private static Logger logger = Logger.getLogger(NonDeterministicLoggingClassVisitor.class);
@@ -132,19 +131,19 @@ public MethodVisitor visitMethod(int acc, String name, String desc, String signa
132131
String[] exceptions) {
133132
// TODO need an annotation to disable doing this to some apps
134133
MethodVisitor primaryMV = cv.visitMethod(acc, name, desc, signature, exceptions);
135-
MethodVisitor smv = new ReflectionInterceptingMethodVisitor(Opcodes.ASM5, primaryMV);
136-
smv = new FinalizerLoggingMethodVisitor(acc, smv, name, desc, className);
134+
MethodVisitor smv = new ReflectionInterceptingMethodVisitor(primaryMV);
135+
smv = new FinalizerLoggingMethodVisitor(smv, name, desc, className);
137136
if (name.equals("main") && desc.equals("([Ljava/lang/String;)V")) {
138-
smv = new MainLoggingMethodVisitor(Opcodes.ASM5, smv, acc, name, desc, className);
137+
smv = new MainLoggingMethodVisitor(smv, acc, name, desc, className);
139138
}
140139

141140
if (classIsCallback(className)) {
142141
AnalyzerAdapter analyzer = new AnalyzerAdapter(className, acc, name, desc, smv);
143142
JSRInlinerAdapter mv = new JSRInlinerAdapter(analyzer, acc, name, desc, signature,
144143
exceptions);
145-
CloningAdviceAdapter caa = new CloningAdviceAdapter(Opcodes.ASM5, mv, acc, name, desc,
144+
CloningAdviceAdapter caa = new CloningAdviceAdapter(mv, acc, name, desc,
146145
className);
147-
smv = new CallbackLoggingMethodVisitor(Opcodes.ASM5, caa, acc, name, desc, className,
146+
smv = new CallbackLoggingMethodVisitor(caa, acc, name, desc, className,
148147
null, caa);
149148
smv = new JSRInlinerAdapter(smv, acc, name, desc, signature, exceptions);
150149
smv = new LocalVariablesSorter(acc, desc, smv);
@@ -162,14 +161,15 @@ public MethodVisitor visitMethod(int acc, String name, String desc, String signa
162161
// LocalVariablesSorter sorter = new LocalVariablesSorter(acc, desc,
163162
// analyzer);
164163

165-
// CheckMethodAdapter cmv = new CheckMethodAdapter(mv);
166-
167164
NonDeterministicLoggingMethodVisitor cloningMV = new NonDeterministicLoggingMethodVisitor(
168-
Opcodes.ASM4, mv, acc, name, desc, className, isFirstConstructor, analyzer);
165+
mv, acc, name, desc, className, isFirstConstructor);
169166
if (name.equals("<init>"))
170167
isFirstConstructor = false;
171168
cloningMV.setClassVisitor(this);
172-
JSRInlinerAdapter mv2 = new JSRInlinerAdapter(cloningMV, acc, name, desc, signature,
169+
AnalyzerAdapter preAnalyzer = new AnalyzerAdapter(className, acc, name, desc, cloningMV);
170+
cloningMV.setPreAnalyzer(preAnalyzer);
171+
172+
JSRInlinerAdapter mv2 = new JSRInlinerAdapter(preAnalyzer, acc, name, desc, signature,
173173
exceptions);
174174
LocalVariablesSorter sorter = new LocalVariablesSorter(acc, desc, mv2);
175175
cloningMV.setLocalVariableSorter(sorter);
@@ -195,7 +195,6 @@ public void addFieldMarkup(Collection<MethodCall> calls) {
195195

196196
@Override
197197
public void visitEnd() {
198-
super.visitEnd();
199198

200199
for (MethodCall mc : captureMethodsToGenerate.keySet()) {
201200
MethodInsnNode mi = captureMethodsToGenerate.get(mc);
@@ -215,7 +214,7 @@ else if (mi.getOpcode() != Opcodes.INVOKESTATIC) {
215214
}
216215
MethodVisitor mv = super.visitMethod(opcode, mc.getCapturePrefix() + "_capture",
217216
captureDesc, null, null);
218-
CloningAdviceAdapter caa = new CloningAdviceAdapter(Opcodes.ASM5, mv, opcode,
217+
CloningAdviceAdapter caa = new CloningAdviceAdapter(mv, opcode,
219218
mc.getCapturePrefix() + "_capture", captureDesc, className);
220219
LocalVariablesSorter lvs = new LocalVariablesSorter(opcode, captureDesc, caa);
221220
caa.setLocalVariableSorter(lvs);
@@ -269,6 +268,7 @@ else if (mi.getOpcode() != Opcodes.INVOKESTATIC) {
269268
"J", null, 0L);
270269
fn.accept(this);
271270
}
271+
super.visitEnd();
272272
}
273273

274274
public String getClassName() {

0 commit comments

Comments
 (0)