From ae6f77ddfaf8e752589d9050c9e517cb1c52cbf0 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 12 Nov 2014 00:40:47 -0500 Subject: Fix bytevector-fill! to accept fill arguments greater than 127. Fixes . * libguile/bytevectors.c (scm_bytevector_fill_x): Accept fill arguments between -128 and 255. * test-suite/tests/bytevectors.test ("2.2 General Operations"): Add tests. --- libguile/bytevectors.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libguile/bytevectors.c') diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c index 9f6b6abf3..8f698d5ba 100644 --- a/libguile/bytevectors.c +++ b/libguile/bytevectors.c @@ -537,9 +537,14 @@ SCM_DEFINE (scm_bytevector_fill_x, "bytevector-fill!", 2, 0, 0, { size_t c_len, i; scm_t_uint8 *c_bv, c_fill; + int value; SCM_VALIDATE_BYTEVECTOR (1, bv); - c_fill = scm_to_int8 (fill); + + value = scm_to_int (fill); + if (SCM_UNLIKELY ((value < -128) || (value > 255))) + scm_out_of_range (FUNC_NAME, fill); + c_fill = (scm_t_uint8) value; c_len = SCM_BYTEVECTOR_LENGTH (bv); c_bv = (scm_t_uint8 *) SCM_BYTEVECTOR_CONTENTS (bv); -- cgit v1.2.3