mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 04:10:18 +02:00
(scm_array_fill_x): For byvect char fill, force signed char
so as not to depend on signedness of plain char. For byvect range check, throw out-of-range rather than wrong-type-arg.
This commit is contained in:
parent
bcb88c93fa
commit
4d6ed8fe44
1 changed files with 4 additions and 4 deletions
|
@ -473,10 +473,10 @@ scm_array_fill_int (SCM ra, SCM fill, SCM ignore SCM_UNUSED)
|
||||||
break;
|
break;
|
||||||
case scm_tc7_byvect:
|
case scm_tc7_byvect:
|
||||||
if (SCM_CHARP (fill))
|
if (SCM_CHARP (fill))
|
||||||
fill = SCM_I_MAKINUM ((char) SCM_CHAR (fill));
|
fill = SCM_I_MAKINUM ((signed char) SCM_CHAR (fill));
|
||||||
SCM_ASRTGO (SCM_I_INUMP (fill)
|
SCM_ASRTGO (SCM_I_INUMP (fill), badarg2);
|
||||||
&& -128 <= SCM_I_INUM (fill) && SCM_I_INUM (fill) < 128,
|
SCM_ASSERT_RANGE (SCM_ARG2, fill,
|
||||||
badarg2);
|
-128 <= SCM_I_INUM (fill) && SCM_I_INUM (fill) < 128);
|
||||||
for (i = base; n--; i += inc)
|
for (i = base; n--; i += inc)
|
||||||
((char *) SCM_UVECTOR_BASE (ra))[i] = SCM_I_INUM (fill);
|
((char *) SCM_UVECTOR_BASE (ra))[i] = SCM_I_INUM (fill);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue