Make sure that we always grow a multiple of 2 operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19902 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-01-29 01:05:12 +00:00
parent 204fcaea41
commit 1f377fcaad

View File

@ -948,6 +948,7 @@ void SwitchInst::addCase(Constant *OnVal, BasicBlock *Dest) {
if (OpNo+2 > ReservedSpace)
resizeOperands(0); // Get more space!
// Initialize some new operands.
assert(OpNo+1 < ReservedSpace && "Growing didn't work!");
NumOperands = OpNo+2;
OperandList[OpNo].init(OnVal, this);
OperandList[OpNo+1].init(Dest, this);
@ -989,7 +990,7 @@ void SwitchInst::removeCase(unsigned idx) {
///
void SwitchInst::resizeOperands(unsigned NumOps) {
if (NumOps == 0) {
NumOps = (getNumOperands())*3/2;
NumOps = getNumOperands()/2*6;
} else if (NumOps*2 > NumOperands) {
// No resize needed.
if (ReservedSpace >= NumOps) return;