Branch: Tag:

1997-03-08

1997-03-08 17:09:30 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Extended pop() to actually use the value provided.

Rev: lib/modules/Stack.pmod:1.2

10:    arr[ptr++]=val;    }    -  mixed pop(mixed val) +  mixed pop(void|int val)    {    mixed foo; -  +  +  if (val) { +  if (ptr <= 0) { +  error("Stack underflow\n"); +  } +  +  if (ptr < val) { +  val = ptr; +  } +  ptr -= val; +  foo = arr[ptr..ptr + val - 1]; +  +  for (int i=0; i < val; i++) { +  arr[ptr + i] = 0; /* Don't waste references */ +  } +  } else {    if(--ptr < 0)    error("Stack underflow\n");       foo=arr[ptr];    arr[ptr]=0; /* Don't waste references */ -  +  }    return foo;    }