diff --git a/src/mzscheme/src/read.c b/src/mzscheme/src/read.c index 5982966f49..b427d552c9 100644 --- a/src/mzscheme/src/read.c +++ b/src/mzscheme/src/read.c @@ -1703,7 +1703,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * Scheme_Object *v; if (!params->can_read_reader) { scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, - "read: #! reader expressions not currently enabled"); + "read: #! readerppppp expressions not currently enabled"); return NULL; } v = read_lang(port, stxsrc, line, col, pos, ht, indentation, params, ch); @@ -4638,9 +4638,7 @@ static Scheme_Object *read_compact(CPort *port, int use_stack) SCHEME_VEC_ELS(vec)[i] = cv; } - if (l) { - SCHEME_SET_IMMUTABLE(vec); - } + SCHEME_SET_IMMUTABLE(vec); v = vec; } diff --git a/src/mzscheme/src/stxobj.c b/src/mzscheme/src/stxobj.c index 702bdd4f42..94c26fd521 100644 --- a/src/mzscheme/src/stxobj.c +++ b/src/mzscheme/src/stxobj.c @@ -2752,8 +2752,7 @@ static Scheme_Object *stx_activate_certs(Scheme_Object *o, Scheme_Cert **cp) SCHEME_VEC_ELS(v2)[i] = e; } - if (size) - SCHEME_SET_IMMUTABLE(v2); + SCHEME_SET_IMMUTABLE(v2); return v2; } else if (prefab_p(o)) { Scheme_Object *e = NULL; @@ -5196,8 +5195,7 @@ static Scheme_Object *syntax_to_datum_inner(Scheme_Object *o, } result = r; - if (size) - SCHEME_SET_IMMUTABLE(result); + SCHEME_SET_IMMUTABLE(result); } else if (prefab_p(v)) { Scheme_Structure *s = (Scheme_Structure *)v; Scheme_Object *a; @@ -5945,8 +5943,7 @@ static Scheme_Object *datum_to_syntax_inner(Scheme_Object *o, SCHEME_VEC_ELS(result)[i] = a; } - if (size) - SCHEME_SET_VECTOR_IMMUTABLE(result); + SCHEME_SET_VECTOR_IMMUTABLE(result); } else if (prefab_p(o)) { Scheme_Structure *s = (Scheme_Structure *)o; Scheme_Object *a; diff --git a/src/mzscheme/src/vector.c b/src/mzscheme/src/vector.c index 1218f0ff71..84251858e8 100644 --- a/src/mzscheme/src/vector.c +++ b/src/mzscheme/src/vector.c @@ -38,19 +38,11 @@ static Scheme_Object *vector_copy_bang(int argc, Scheme_Object *argv[]); static Scheme_Object *vector_to_immutable (int argc, Scheme_Object *argv[]); static Scheme_Object *vector_to_values (int argc, Scheme_Object *argv[]); -static Scheme_Object *zero_length_vector; - void scheme_init_vector (Scheme_Env *env) { Scheme_Object *p; - REGISTER_SO(zero_length_vector); - zero_length_vector = (Scheme_Object *)scheme_malloc_tagged(sizeof(Scheme_Vector) - - sizeof(Scheme_Object *)); - zero_length_vector->type = scheme_vector_type; - SCHEME_VEC_SIZE(zero_length_vector) = 0; - p = scheme_make_folding_prim(vector_p, "vector?", 1, 1, 1); SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED; scheme_add_global_constant("vector?", p, env); @@ -127,12 +119,9 @@ scheme_make_vector (int size, Scheme_Object *fill) Scheme_Object *vec; int i; - if (size <= 0) { - if (size) { - vec = scheme_make_integer(size); - scheme_wrong_type("make-vector", "non-negative exact integer", -1, 0, &vec); - } else - return zero_length_vector; + if (size < 0) { + vec = scheme_make_integer(size); + scheme_wrong_type("make-vector", "non-negative exact integer", -1, 0, &vec); } if (size < 1024) { @@ -207,8 +196,7 @@ vector_immutable (int argc, Scheme_Object *argv[]) Scheme_Object *vec; vec = vector(argc, argv); - if (argc) - SCHEME_SET_IMMUTABLE(vec); + SCHEME_SET_IMMUTABLE(vec); return vec; } @@ -411,8 +399,6 @@ static Scheme_Object *vector_to_immutable (int argc, Scheme_Object *argv[]) ovec = argv[0]; len = SCHEME_VEC_SIZE(ovec); - if (!len) - return ovec; vec = scheme_make_vector(len, NULL); for (i = 0; i < len; i++) {