summaryrefslogtreecommitdiff
path: root/libguile/stacks.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2011-08-31 09:34:54 +0200
committerAndy Wingo <wingo@pobox.com>2011-08-31 09:34:54 +0200
commit8b66aa8f5496a515ca133d6d2c37a06f6ec1720d (patch)
treeca666d93b6c310c6d76f8a0f0051407b9c92ee40 /libguile/stacks.c
parent02620dd9a628ec40ec4324adca9b82cd0442d1d2 (diff)
parent0b4f77192da214690aa811d13bb6a7f6dd576445 (diff)
downloadguile-8b66aa8f5496a515ca133d6d2c37a06f6ec1720d.tar.gz
Merge remote-tracking branch 'origin/stable-2.0'
Conflicts: libguile/bytevectors.c libguile/bytevectors.h libguile/objcodes.c libguile/r6rs-ports.c libguile/strings.c libguile/vm.c
Diffstat (limited to 'libguile/stacks.c')
-rw-r--r--libguile/stacks.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/libguile/stacks.c b/libguile/stacks.c
index 86188f416..d0e82f7bd 100644
--- a/libguile/stacks.c
+++ b/libguile/stacks.c
@@ -184,11 +184,10 @@ narrow_stack (SCM stack, long inner, SCM inner_key, long outer, SCM outer_key)
else
{
/* Cut specified number of frames. */
- for (; outer && len ; --outer)
- {
- frame = scm_stack_ref (stack, scm_from_long (len - 1));
- len--;
- }
+ if (outer < len)
+ len -= outer;
+ else
+ len = 0;
}
SCM_SET_STACK_LENGTH (stack, len);