From 55bf8cb7af47cde26e6a70dae056752c8265508d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 19 Jun 2009 00:10:21 +0200 Subject: [PATCH 1/1] Fix `equal?' on bytevectors. * libguile/bytevectors.c (bytevector_equal_p): New function. * test-suite/tests/bytevectors.test ("2.3 Operations on Bytes and Octets")["equal?"]: New test. --- libguile/bytevectors.c | 5 +++++ test-suite/tests/bytevectors.test | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c index 0846d9120..2484a64a4 100644 --- a/libguile/bytevectors.c +++ b/libguile/bytevectors.c @@ -300,6 +300,11 @@ SCM_SMOB_PRINT (scm_tc16_bytevector, print_bytevector, return 1; } +SCM_SMOB_EQUALP (scm_tc16_bytevector, bytevector_equal_p, bv1, bv2) +{ + return scm_bytevector_eq_p (bv1, bv2); +} + SCM_SMOB_FREE (scm_tc16_bytevector, free_bytevector, bv) { diff --git a/test-suite/tests/bytevectors.test b/test-suite/tests/bytevectors.test index c7697b13c..95d6c403a 100644 --- a/test-suite/tests/bytevectors.test +++ b/test-suite/tests/bytevectors.test @@ -123,7 +123,12 @@ (bytevector-sint-set! b 0 -16 (endianness big) 2) (bytevector-sint-set! b 1 -16 (endianness little) 2) (equal? (bytevector->u8-list b) - '(#xff #xf0 #xff))))) + '(#xff #xf0 #xff)))) + + (pass-if "equal?" + (let ((bv1 (u8-list->bytevector (iota 123))) + (bv2 (u8-list->bytevector (iota 123)))) + (equal? bv1 bv2)))) (with-test-prefix "2.4 Operations on Integers of Arbitrary Size" -- 2.20.1