mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-03-15 01:10:53 -07:00
Renamed the array limit constants: ADIMLIM, ATOTLIM, ARANKLIM, to ECL_ARRAY_{DIMENSION,TOTAL,RANK}_LIMIT
This commit is contained in:
parent
95aaab87a5
commit
dac086195d
8 changed files with 28 additions and 24 deletions
|
|
@ -96,7 +96,7 @@ ecl_to_index(cl_object n)
|
|||
switch (type_of(n)) {
|
||||
case t_fixnum: {
|
||||
cl_fixnum out = ecl_fixnum(n);
|
||||
if (out < 0 || out >= ADIMLIM)
|
||||
if (out < 0 || out >= ECL_ARRAY_DIMENSION_LIMIT)
|
||||
FEtype_error_index(Cnil, out);
|
||||
return out;
|
||||
}
|
||||
|
|
@ -409,7 +409,7 @@ si_make_pure_array(cl_object etype, cl_object dims, cl_object adj,
|
|||
cl_list(3, @'or', @'list', @'fixnum'));
|
||||
}
|
||||
r = ecl_length(dims);
|
||||
if (ecl_unlikely(r >= ARANKLIM)) {
|
||||
if (ecl_unlikely(r >= ECL_ARRAY_RANK_LIMIT)) {
|
||||
FEerror("The array rank, ~R, is too large.", 1, ecl_make_fixnum(r));
|
||||
} else if (r == 1) {
|
||||
return si_make_vector(etype, ECL_CONS_CAR(dims), adj, fillp,
|
||||
|
|
@ -429,17 +429,17 @@ si_make_pure_array(cl_object etype, cl_object dims, cl_object adj,
|
|||
cl_object d = ECL_CONS_CAR(dims);
|
||||
if (ecl_unlikely(!ECL_FIXNUMP(d) ||
|
||||
ecl_fixnum_minusp(d) ||
|
||||
ecl_fixnum_greater(d, ecl_make_fixnum(ADIMLIM))))
|
||||
ecl_fixnum_greater(d, ecl_make_fixnum(ECL_ARRAY_DIMENSION_LIMIT))))
|
||||
{
|
||||
cl_object type = ecl_make_integer_type(ecl_make_fixnum(0),
|
||||
ecl_make_fixnum(ADIMLIM));
|
||||
ecl_make_fixnum(ECL_ARRAY_DIMENSION_LIMIT));
|
||||
FEwrong_type_nth_arg(@[make-array], 1, d, type);
|
||||
}
|
||||
j = ecl_fixnum(d);
|
||||
s *= (x->array.dims[i] = j);
|
||||
if (ecl_unlikely(s > ATOTLIM)) {
|
||||
if (ecl_unlikely(s > ECL_ARRAY_TOTAL_LIMIT)) {
|
||||
cl_object type = ecl_make_integer_type(ecl_make_fixnum(0),
|
||||
ecl_make_fixnum(ATOTLIM));
|
||||
ecl_make_fixnum(ECL_ARRAY_TOTAL_LIMIT));
|
||||
FEwrong_type_key_arg(@[make-array], @[array-total-size],
|
||||
ecl_make_fixnum(s), type);
|
||||
}
|
||||
|
|
@ -471,9 +471,9 @@ si_make_vector(cl_object etype, cl_object dim, cl_object adj,
|
|||
AGAIN:
|
||||
aet = ecl_symbol_to_elttype(etype);
|
||||
if (ecl_unlikely(!ECL_FIXNUMP(dim) || ecl_fixnum_minusp(dim) ||
|
||||
ecl_fixnum_greater(dim, ADIMLIM))) {
|
||||
ecl_fixnum_greater(dim, ECL_ARRAY_DIMENSION_LIMIT))) {
|
||||
cl_object type = ecl_make_integer_type(ecl_make_fixnum(0),
|
||||
ecl_make_fixnum(ADIMLIM));
|
||||
ecl_make_fixnum(ECL_ARRAY_DIMENSION_LIMIT));
|
||||
FEwrong_type_nth_arg(@[make-array], 1, dim, type);
|
||||
}
|
||||
d = ecl_fixnum(dim);
|
||||
|
|
|
|||
|
|
@ -823,10 +823,10 @@ cl__make_hash_table(cl_object test, cl_object size, cl_object rehash_size,
|
|||
}
|
||||
if (ecl_unlikely(!ECL_FIXNUMP(size) ||
|
||||
ecl_fixnum_minusp(size) ||
|
||||
ecl_fixnum_geq(size,ecl_make_fixnum(ATOTLIM)))) {
|
||||
ecl_fixnum_geq(size,ecl_make_fixnum(ECL_ARRAY_TOTAL_LIMIT)))) {
|
||||
FEwrong_type_key_arg(@[make-hash-table], @[:size], size,
|
||||
ecl_make_integer_type(ecl_make_fixnum(0),
|
||||
ecl_make_fixnum(ATOTLIM)));
|
||||
ecl_make_fixnum(ECL_ARRAY_TOTAL_LIMIT)));
|
||||
}
|
||||
hsize = ecl_fixnum(size);
|
||||
if (hsize < 16) {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ write_array_inner(bool vector, cl_object x, cl_object stream)
|
|||
{
|
||||
cl_env_ptr env = ecl_process_env();
|
||||
const cl_index *adims;
|
||||
cl_index subscripts[ARANKLIM];
|
||||
cl_index subscripts[ECL_ARRAY_RANK_LIMIT];
|
||||
cl_fixnum n, j, m, k, i;
|
||||
cl_fixnum print_length;
|
||||
cl_fixnum print_level;
|
||||
|
|
|
|||
|
|
@ -821,7 +821,7 @@ sharp_left_parenthesis_reader(cl_object in, cl_object c, cl_object d)
|
|||
cl_object last;
|
||||
cl_index dim, i;
|
||||
unlikely_if (!ECL_FIXNUMP(d) || ((dim = ecl_fixnum(d)) < 0) ||
|
||||
(dim > ADIMLIM)) {
|
||||
(dim > ECL_ARRAY_DIMENSION_LIMIT)) {
|
||||
FEreader_error("Invalid dimension size ~D in #()", in, 1, d);
|
||||
}
|
||||
v = ecl_alloc_simple_vector(dim, ecl_aet_object);
|
||||
|
|
@ -879,7 +879,7 @@ sharp_asterisk_reader(cl_object in, cl_object c, cl_object d)
|
|||
dim = dimcount;
|
||||
} else {
|
||||
unlikely_if (!ECL_FIXNUMP(d) || ((dim = ecl_fixnum(d)) < 0) ||
|
||||
(dim > ADIMLIM))
|
||||
(dim > ECL_ARRAY_DIMENSION_LIMIT))
|
||||
{
|
||||
FEreader_error("Wrong vector dimension size ~D in #*.",
|
||||
in, 1, d);
|
||||
|
|
|
|||
|
|
@ -188,17 +188,17 @@ cl_symbols[] = {
|
|||
{"ARITHMETIC-ERROR-OPERATION", CL_ORDINARY, NULL, -1, OBJNULL},
|
||||
{"ARRAY", CL_ORDINARY, NULL, -1, OBJNULL},
|
||||
{"ARRAY-DIMENSION", CL_ORDINARY, cl_array_dimension, 2, OBJNULL},
|
||||
{"ARRAY-DIMENSION-LIMIT", CL_CONSTANT, NULL, -1, ecl_make_fixnum(ADIMLIM)},
|
||||
{"ARRAY-DIMENSION-LIMIT", CL_CONSTANT, NULL, -1, ecl_make_fixnum(ECL_ARRAY_DIMENSION_LIMIT)},
|
||||
{"ARRAY-DIMENSIONS", CL_ORDINARY, ECL_NAME(cl_array_dimensions), 1, OBJNULL},
|
||||
{"ARRAY-DISPLACEMENT", CL_ORDINARY, cl_array_displacement, 1, OBJNULL},
|
||||
{"ARRAY-ELEMENT-TYPE", CL_ORDINARY, cl_array_element_type, 1, OBJNULL},
|
||||
{"ARRAY-HAS-FILL-POINTER-P", CL_ORDINARY, cl_array_has_fill_pointer_p, 1, OBJNULL},
|
||||
{"ARRAY-IN-BOUNDS-P", CL_ORDINARY, ECL_NAME(cl_array_in_bounds_p), -1, OBJNULL},
|
||||
{"ARRAY-RANK", CL_ORDINARY, cl_array_rank, 1, OBJNULL},
|
||||
{"ARRAY-RANK-LIMIT", CL_CONSTANT, NULL, -1, ecl_make_fixnum(ARANKLIM)},
|
||||
{"ARRAY-RANK-LIMIT", CL_CONSTANT, NULL, -1, ecl_make_fixnum(ECL_ARRAY_RANK_LIMIT)},
|
||||
{"ARRAY-ROW-MAJOR-INDEX", CL_ORDINARY, ECL_NAME(cl_array_row_major_index), -1, OBJNULL},
|
||||
{"ARRAY-TOTAL-SIZE", CL_ORDINARY, cl_array_total_size, 1, OBJNULL},
|
||||
{"ARRAY-TOTAL-SIZE-LIMIT", CL_CONSTANT, NULL, -1, ecl_make_fixnum(ATOTLIM)},
|
||||
{"ARRAY-TOTAL-SIZE-LIMIT", CL_CONSTANT, NULL, -1, ecl_make_fixnum(ECL_ARRAY_TOTAL_LIMIT)},
|
||||
{"ARRAYP", CL_ORDINARY, cl_arrayp, 1, OBJNULL},
|
||||
{"ASH", CL_ORDINARY, cl_ash, 2, OBJNULL},
|
||||
{"ASIN", CL_ORDINARY, ECL_NAME(cl_asin), 1, OBJNULL},
|
||||
|
|
|
|||
|
|
@ -30,13 +30,13 @@ extend_vector(cl_object v, cl_index amount)
|
|||
if (!ECL_ADJUSTABLE_ARRAY_P(v))
|
||||
FEerror("vector-push-extend: the array ~S is not adjustable.",
|
||||
1, v);
|
||||
if (v->vector.dim >= ADIMLIM)
|
||||
if (v->vector.dim >= ECL_ARRAY_DIMENSION_LIMIT)
|
||||
FEerror("Can't extend the array.", 0);
|
||||
if (amount == 0)
|
||||
amount = v->vector.dim / 2 + 1;
|
||||
new_length = v->vector.dim + amount;
|
||||
if (new_length > ADIMLIM)
|
||||
new_length = ADIMLIM;
|
||||
if (new_length > ECL_ARRAY_DIMENSION_LIMIT)
|
||||
new_length = ECL_ARRAY_DIMENSION_LIMIT;
|
||||
other = si_make_vector(cl_array_element_type(v),
|
||||
ecl_make_fixnum(new_length), Ct,
|
||||
ecl_make_fixnum(v->vector.fillp),
|
||||
|
|
|
|||
|
|
@ -172,13 +172,13 @@ typedef unsigned char ecl_base_char;
|
|||
/*
|
||||
* Array limits
|
||||
*/
|
||||
#define ARANKLIM 64 /* array rank limit */
|
||||
#define ECL_ARRAY_RANK_LIMIT 64 /* array rank limit */
|
||||
#ifdef GBC_BOEHM
|
||||
#define ADIMLIM @CL_FIXNUM_MAX@ /* array dimension limit */
|
||||
#define ATOTLIM @CL_FIXNUM_MAX@ /* array total limit */
|
||||
#define ECL_ARRAY_DIMENSION_LIMIT @CL_FIXNUM_MAX@
|
||||
#define ECL_ARRAY_TOTAL_LIMIT @CL_FIXNUM_MAX@
|
||||
#else
|
||||
#define ADIMLIM 16*1024*1024 /* array dimension limit */
|
||||
#define ATOTLIM 16*1024*1024 /* array total limit */
|
||||
#define ECL_ARRAY_DIMENSION_LIMIT 16*1024*1024
|
||||
#define ECL_ARRAY_TOTAL_LIMIT 16*1024*1024
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -122,3 +122,7 @@
|
|||
|
||||
#define ecl_make_unsigned_long_Long(o) ecl_make_ulong_long(o)
|
||||
#define ecl_to_unsigned_long_long(o) ecl_to_ulong_long(o)
|
||||
|
||||
#define ADIMLIM ECL_ARRAY_DIMENSION_LIMIT
|
||||
#define ATOTLIM ECL_ARRAY_TOTAL_LIMIT
|
||||
#define ARANKLIM ECL_ARRAY_RANK_LIMIT
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue