diff options
author | Mark H Weaver <mhw@netris.org> | 2009-10-27 22:59:22 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-10-27 23:26:30 +0100 |
commit | b02b05332f45fc6ac4f99556cda9fb7ee894e673 (patch) | |
tree | 35ce82c3fadb074f3c2f6e433a0c8a70f48b91d6 /libguile/vm-i-system.c | |
parent | 45f4cbdf128c4d3eadcd4bf4571bcc1d61d1039a (diff) | |
download | guile-b02b05332f45fc6ac4f99556cda9fb7ee894e673.tar.gz |
fix nil handling in the vm
* libguile/vm-i-scheme.c (not, not-not): Treat nil as false.
(null?, not-null?): Treat nil as null.
* libguile/vm-i-system.c (br-if, br-if-not): Treat nil as false.
(br-if-null, br-if-not-null): Treat nil as null.
Diffstat (limited to 'libguile/vm-i-system.c')
-rw-r--r-- | libguile/vm-i-system.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c index 160c231c8..f58ffce58 100644 --- a/libguile/vm-i-system.c +++ b/libguile/vm-i-system.c @@ -475,12 +475,12 @@ VM_DEFINE_INSTRUCTION (34, br, "br", 3, 0, 0) VM_DEFINE_INSTRUCTION (35, br_if, "br-if", 3, 0, 0) { - BR (!SCM_FALSEP (*sp)); + BR (scm_is_true_and_not_nil (*sp)); } VM_DEFINE_INSTRUCTION (36, br_if_not, "br-if-not", 3, 0, 0) { - BR (SCM_FALSEP (*sp)); + BR (scm_is_false_or_nil (*sp)); } VM_DEFINE_INSTRUCTION (37, br_if_eq, "br-if-eq", 3, 0, 0) @@ -497,12 +497,12 @@ VM_DEFINE_INSTRUCTION (38, br_if_not_eq, "br-if-not-eq", 3, 0, 0) VM_DEFINE_INSTRUCTION (39, br_if_null, "br-if-null", 3, 0, 0) { - BR (SCM_NULLP (*sp)); + BR (scm_is_null_or_nil (*sp)); } VM_DEFINE_INSTRUCTION (40, br_if_not_null, "br-if-not-null", 3, 0, 0) { - BR (!SCM_NULLP (*sp)); + BR (!scm_is_null_or_nil (*sp)); } |