diff --git a/CHANGELOG.md b/CHANGELOG.md index f334ed32..e09d135c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Features - During CPS optimization allow inlining of operations on global variables that are mutated in other top-level functions. - Improved loop detection during CPS optimization phase. - Allow optimizing-out of basic `if` expressions of the form `(if (pred? ...) #t #f)` into `(pred? ...)`. +- Perform slightly faster type checking for vector and bytevector access functions. Bug Fixes diff --git a/runtime.c b/runtime.c index c77568e8..5614aaf1 100644 --- a/runtime.c +++ b/runtime.c @@ -2858,7 +2858,7 @@ object Cyc_bytevector_u8_ref(void *data, object bv, object k) int val; Cyc_check_bvec(data, bv); - Cyc_check_num(data, k); + Cyc_check_fixnum(data, k); buf = ((bytevector) bv)->data; idx = unbox_number(k); @@ -2877,8 +2877,8 @@ object Cyc_bytevector_u8_set(void *data, object bv, object k, object b) int idx, len, val; Cyc_check_bvec(data, bv); - Cyc_check_num(data, k); - Cyc_check_num(data, b); + Cyc_check_fixnum(data, k); + Cyc_check_fixnum(data, b); buf = ((bytevector) bv)->data; idx = unbox_number(k);