/* */ }
/* */
/* */ protected void doit(CtClass clazz, MethodInfo minfo, ConstPool cp)
/* */ throws CannotCompileException
/* */ {
/* 496 */ CodeAttribute codeAttr = minfo.getCodeAttribute();
/* 497 */ if ((codeAttr == null) || (this.transformers == null))
/* 498 */ return;
/* 499 */ for (Transformer t = this.transformers; t != null; t = t.getNext()) {
/* 500 */ t.initialize(cp, clazz, minfo);
/* */ }
/* 502 */ CodeIterator iterator = codeAttr.iterator();
/* 503 */ while (iterator.hasNext()) {
/* */ try {
/* 505 */ int pos = iterator.next();
/* 506 */ for (t = this.transformers; t != null; t = t.getNext())
/* 507 */ pos = t.transform(clazz, pos, iterator, cp);
/* */ }
/* */ catch (BadBytecode e) {
/* 510 */ throw new CannotCompileException(e);
/* */ }
/* */ }
/* */
/* 514 */ int locals = 0;
/* 515 */ int stack = 0;
/* 516 */ for (t = this.transformers; t != null; t = t.getNext()) {
/* 517 */ int s = t.extraLocals();
/* 518 */ if (s > locals) {
/* 519 */ locals = s;
/* */ }
/* 521 */ s = t.extraStack();
/* 522 */ if (s > stack) {
/* 523 */ stack = s;
/* */ }
/* */ }
/* 526 */ for (t = this.transformers; t != null; t = t.getNext()) {
/* 527 */ t.clean();
/* */ }
/* 529 */ if (locals > 0) {
/* 530 */ codeAttr.setMaxLocals(codeAttr.getMaxLocals() + locals);
/* */ }
/* 532 */ if (stack > 0)
/* 533 */ codeAttr.setMaxStack(codeAttr.getMaxStack() + stack);
/* */ }