mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 04:10:18 +02:00
(scm_uniform_vector_ref, scm_array_set_x): For byvect, force
signed byte range checks by using scm_to_schar and scm_from_schar, don't want to depend on signedness of C char.
This commit is contained in:
parent
7f9ca7c3d7
commit
bebf6a08af
1 changed files with 3 additions and 3 deletions
|
@ -1111,7 +1111,7 @@ SCM_DEFINE (scm_uniform_vector_ref, "uniform-vector-ref", 2, 0, 0,
|
||||||
case scm_tc7_string:
|
case scm_tc7_string:
|
||||||
return SCM_MAKE_CHAR (SCM_STRING_UCHARS (v)[pos]);
|
return SCM_MAKE_CHAR (SCM_STRING_UCHARS (v)[pos]);
|
||||||
case scm_tc7_byvect:
|
case scm_tc7_byvect:
|
||||||
return scm_from_char (((char *) SCM_UVECTOR_BASE (v))[pos]);
|
return scm_from_schar (((char *) SCM_UVECTOR_BASE (v))[pos]);
|
||||||
case scm_tc7_uvect:
|
case scm_tc7_uvect:
|
||||||
return scm_from_ulong (((unsigned long *) SCM_VELTS (v))[pos]);
|
return scm_from_ulong (((unsigned long *) SCM_VELTS (v))[pos]);
|
||||||
case scm_tc7_ivect:
|
case scm_tc7_ivect:
|
||||||
|
@ -1273,8 +1273,8 @@ SCM_DEFINE (scm_array_set_x, "array-set!", 2, 0, 1,
|
||||||
break;
|
break;
|
||||||
case scm_tc7_byvect:
|
case scm_tc7_byvect:
|
||||||
if (SCM_CHARP (obj))
|
if (SCM_CHARP (obj))
|
||||||
obj = scm_from_char ((char) SCM_CHAR (obj));
|
obj = scm_from_schar ((char) SCM_CHAR (obj));
|
||||||
((char *) SCM_UVECTOR_BASE (v))[pos] = scm_to_char (obj);
|
((char *) SCM_UVECTOR_BASE (v))[pos] = scm_to_schar (obj);
|
||||||
break;
|
break;
|
||||||
case scm_tc7_uvect:
|
case scm_tc7_uvect:
|
||||||
((unsigned long *) SCM_UVECTOR_BASE (v))[pos] = scm_to_ulong (obj);
|
((unsigned long *) SCM_UVECTOR_BASE (v))[pos] = scm_to_ulong (obj);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue