public synchronized byte[] getModifiedClassBytes(String className, byte[] classBytes) {
if (Options.debug)
System.out.println("Bytecoder1.getModifiedClassBytes: " + className +
" classBytes=" + classBytes.length);
ClassReader classReader = new ClassReader(classBytes);
ClassPreVisitor classPreVisitor = new ClassPreVisitor();
classReader.accept(classPreVisitor, ClassReader.EXPAND_FRAMES);
Hashtable localVariableVectorHashtable = classPreVisitor.localVariableVectorHashtable;
Hashtable labelVectorHashtable = classPreVisitor.labelVectorHashtable;
MyClassWriter myClassWriter =
new MyClassWriter(labelVectorHashtable, localVariableVectorHashtable);
classReader = new ClassReader(classBytes);
if (Options.debug)
System.out.println("Bytecoder1.getModifiedClassBytes: " +
"before accept: className="+className+" classBytes=" + classBytes.length);
classReader.accept(myClassWriter, 0);
containsDebugInfo = myClassWriter.containsDebugInfo;
byte[] bytes = null;
if (Options.forceTransform || containsDebugInfo)
bytes = myClassWriter.toByteArray();