void LinkAndOptimize(CodeBox box) { box.LinkedCode = null; // Force top-level re-link box.LinkCode(); int minOpt = box.Symbol.CodeExprIndex + box.Symbol.ArraySize; if (box.Params.Count != 0) { minOpt = Math.Max(minOpt, box.Params[box.Params.Count - 1].CodeExprIndex + box.Params[box.Params.Count - 1].ArraySize); } if (box.Locals.Count != 0) { minOpt = Math.Max(minOpt, box.Locals[box.Locals.Count - 1].CodeExprIndex + box.Locals[box.Locals.Count - 1].ArraySize); } // Optimize, unless disabled if (!checkDisableOptimizer.Checked) { new Optimizer(box.LinkedCode, minOpt); } }