VM_DEFINE_FUNCTION (109, vector_ref, "vector-ref", 2)
{
- long i;
+ long i = 0;
ARGS2 (vect, idx);
if (SCM_LIKELY (SCM_I_IS_VECTOR (vect)
&& SCM_I_INUMP (idx)
VM_DEFINE_INSTRUCTION (110, vector_set, "vector-set", 0, 3, 0)
{
- long i;
+ long i = 0;
SCM vect, idx, val;
POP (val); POP (idx); POP (vect);
if (SCM_LIKELY (SCM_I_IS_VECTOR (vect)
#define BV_FIXABLE_INT_REF(stem, fn_stem, type, size) \
{ \
- long i; \
+ long i = 0; \
ARGS2 (bv, idx); \
VM_VALIDATE_BYTEVECTOR (bv); \
if (SCM_LIKELY (SCM_I_INUMP (idx) \
&& ((i = SCM_I_INUM (idx)) >= 0) \
- && (i < SCM_BYTEVECTOR_LENGTH (bv)) \
+ && (i + size <= SCM_BYTEVECTOR_LENGTH (bv)) \
&& (i % size == 0))) \
RETURN (SCM_I_MAKINUM (*(scm_t_##type*) \
(SCM_BYTEVECTOR_CONTENTS (bv) + i))); \
#define BV_INT_REF(stem, type, size) \
{ \
- long i; \
+ long i = 0; \
ARGS2 (bv, idx); \
VM_VALIDATE_BYTEVECTOR (bv); \
if (SCM_LIKELY (SCM_I_INUMP (idx) \
- && ((i = SCM_I_INUM (idx)) >= 0) \
- && (i < SCM_BYTEVECTOR_LENGTH (bv)) \
+ && ((i = SCM_I_INUM (idx)) >= 0) \
+ && (i + size <= SCM_BYTEVECTOR_LENGTH (bv)) \
&& (i % size == 0))) \
{ scm_t_##type x = (*(scm_t_##type*)(SCM_BYTEVECTOR_CONTENTS (bv) + i)); \
if (SCM_FIXABLE (x)) \
#define BV_FLOAT_REF(stem, fn_stem, type, size) \
{ \
- long i; \
+ long i = 0; \
ARGS2 (bv, idx); \
VM_VALIDATE_BYTEVECTOR (bv); \
if (SCM_LIKELY (SCM_I_INUMP (idx) \
&& ((i = SCM_I_INUM (idx)) >= 0) \
- && (i < SCM_BYTEVECTOR_LENGTH (bv)) \
+ && (i + size <= SCM_BYTEVECTOR_LENGTH (bv)) \
&& (i % size == 0))) \
RETURN (scm_from_double ((*(type*)(SCM_BYTEVECTOR_CONTENTS (bv) + i)))); \
else \
#define BV_FIXABLE_INT_SET(stem, fn_stem, type, min, max, size) \
{ \
- long i, j; \
+ long i = 0, j = 0; \
SCM bv, idx, val; POP (val); POP (idx); POP (bv); \
VM_VALIDATE_BYTEVECTOR (bv); \
if (SCM_LIKELY (SCM_I_INUMP (idx) \
&& ((i = SCM_I_INUM (idx)) >= 0) \
- && (i < SCM_BYTEVECTOR_LENGTH (bv)) \
+ && (i + size <= SCM_BYTEVECTOR_LENGTH (bv)) \
&& (i % size == 0) \
&& (SCM_I_INUMP (val)) \
&& ((j = SCM_I_INUM (val)) >= min) \
#define BV_INT_SET(stem, type, size) \
{ \
- long i; \
+ long i = 0; \
SCM bv, idx, val; POP (val); POP (idx); POP (bv); \
VM_VALIDATE_BYTEVECTOR (bv); \
if (SCM_LIKELY (SCM_I_INUMP (idx) \
&& ((i = SCM_I_INUM (idx)) >= 0) \
- && (i < SCM_BYTEVECTOR_LENGTH (bv)) \
+ && (i + size <= SCM_BYTEVECTOR_LENGTH (bv)) \
&& (i % size == 0))) \
*(scm_t_##type*) (SCM_BYTEVECTOR_CONTENTS (bv) + i) = scm_to_##type (val); \
else \
#define BV_FLOAT_SET(stem, fn_stem, type, size) \
{ \
- long i; \
+ long i = 0; \
SCM bv, idx, val; POP (val); POP (idx); POP (bv); \
VM_VALIDATE_BYTEVECTOR (bv); \
if (SCM_LIKELY (SCM_I_INUMP (idx) \
&& ((i = SCM_I_INUM (idx)) >= 0) \
- && (i < SCM_BYTEVECTOR_LENGTH (bv)) \
+ && (i + size <= SCM_BYTEVECTOR_LENGTH (bv)) \
&& (i % size == 0))) \
*(type*) (SCM_BYTEVECTOR_CONTENTS (bv) + i) = scm_to_double (val); \
else \