CodeIterator iterator = codeAttribute.iterator();
int pos = iterator.skipSuperConstructor();
if (pos >= 0) {
int mref = iterator.u16bitAt(pos + 1);
ConstPool constPool = codeAttribute.getConstPool();
iterator.write16bit(constPool.addMethodrefInfo(constPool.addClassInfo("java.lang.Object"), "<init>", "()V"), pos + 1);
String desc = constPool.getMethodrefType(mref);
int num = Descriptor.numOfParameters(desc) + 1;
pos = iterator.insertGapAt(pos, num, false).position;
Descriptor.Iterator i$ = new Descriptor.Iterator(desc);
for (i$.next(); i$.isParameter(); i$.next()) {