fix chaperone bugs uncovered by 64-bit build
svn: r18651
This commit is contained in:
parent
73807aef24
commit
4ecf61f413
|
@ -1753,7 +1753,7 @@ static void chaperone_struct_set(const char *who, Scheme_Object *o, int i, Schem
|
|||
{
|
||||
while (1) {
|
||||
if (!SCHEME_CHAPERONEP(o)) {
|
||||
SCHEME_VEC_ELS(o)[i] = v;
|
||||
((Scheme_Structure *)o)->slots[i] = v;
|
||||
return;
|
||||
} else {
|
||||
Scheme_Chaperone *px = (Scheme_Chaperone *)o;
|
||||
|
|
|
@ -364,7 +364,10 @@ void scheme_bad_vec_index(char *name, Scheme_Object *i, const char *what, Scheme
|
|||
static Scheme_Object *
|
||||
bad_index(char *name, Scheme_Object *i, Scheme_Object *vec, int bottom)
|
||||
{
|
||||
scheme_bad_vec_index(name, i, "vector", vec, bottom, SCHEME_VEC_SIZE(vec));
|
||||
scheme_bad_vec_index(name, i, "vector", vec, bottom,
|
||||
(SCHEME_NP_CHAPERONEP(vec)
|
||||
? SCHEME_VEC_SIZE(SCHEME_CHAPERONE_VAL(vec))
|
||||
: SCHEME_VEC_SIZE(vec)));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -491,7 +494,7 @@ scheme_checked_vector_set(int argc, Scheme_Object *argv[])
|
|||
if (!SCHEME_MUTABLE_VECTORP(vec))
|
||||
scheme_wrong_type("vector-set!", "mutable vector", 0, argc, argv);
|
||||
|
||||
len = SCHEME_VEC_SIZE(argv[0]);
|
||||
len = SCHEME_VEC_SIZE(vec);
|
||||
|
||||
i = scheme_extract_index("vector-set!", 1, argc, argv, len, 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user