cosmetic changes in assignment.d and clos/instance.d

This commit is contained in:
Marius Gerbershagen 2018-10-05 16:43:18 +02:00
parent c45098e17a
commit 46d74c5a66
2 changed files with 68 additions and 34 deletions

View file

@ -34,8 +34,9 @@ cl_set(cl_object var, cl_object value)
unlikely_if (ecl_t_of(var) != t_symbol) {
FEwrong_type_nth_arg(@[set], 1, var, @[symbol]);
}
unlikely_if (var->symbol.stype & ecl_stp_constant)
unlikely_if (var->symbol.stype & ecl_stp_constant) {
FEconstant_assignment(var);
}
ecl_return1(env, ECL_SETQ(env, var, value));
}
@ -49,8 +50,9 @@ mp_compare_and_swap_symbol_value(cl_object var, cl_object old, cl_object new)
unlikely_if (ecl_t_of(var) != t_symbol) {
FEwrong_type_nth_arg(@[mp::compare-and-swap-symbol-value], 1, var, @[symbol]);
}
unlikely_if (var->symbol.stype & ecl_stp_constant)
unlikely_if (var->symbol.stype & ecl_stp_constant) {
FEconstant_assignment(var);
}
return ecl_compare_and_swap(ecl_bds_ref(ecl_process_env(), var), old, new);
}
@ -63,8 +65,9 @@ mp_atomic_incf_symbol_value(cl_object var, cl_object increment)
unlikely_if (ecl_t_of(var) != t_symbol) {
FEwrong_type_nth_arg(@[mp::atomic-incf-symbol-value], 1, var, @[symbol]);
}
unlikely_if (var->symbol.stype & ecl_stp_constant)
unlikely_if (var->symbol.stype & ecl_stp_constant) {
FEconstant_assignment(var);
}
return ecl_atomic_incf(ecl_bds_ref(ecl_process_env(), var), increment);
}
#endif /* ECL_THREADS */

View file

@ -55,18 +55,21 @@ si_instance_sig_set(cl_object x)
cl_object
si_instance_class(cl_object x)
{
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_only_arg(@[class-of], x, @[ext::instance]);
}
@(return ECL_CLASS_OF(x));
}
cl_object
si_instance_class_set(cl_object x, cl_object y)
{
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[si::instance-class-set], 1, x, @[ext::instance]);
if (ecl_unlikely(!ECL_INSTANCEP(y)))
}
unlikely_if (!ECL_INSTANCEP(y)) {
FEwrong_type_nth_arg(@[si::instance-class-set], 2, y, @[ext::instance]);
}
ECL_CLASS_OF(x) = y;
@(return x);
}
@ -74,10 +77,12 @@ si_instance_class_set(cl_object x, cl_object y)
cl_object
ecl_instance_ref(cl_object x, cl_fixnum i)
{
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[si::instance-ref], 1, x, @[ext::instance]);
if (ecl_unlikely(i < 0 || i >= (cl_fixnum)x->instance.length))
}
unlikely_if (i < 0 || i >= (cl_fixnum)x->instance.length) {
FEtype_error_index(x, i);
}
return(x->instance.slots[i]);
}
@ -86,13 +91,16 @@ si_instance_ref(cl_object x, cl_object index)
{
cl_fixnum i;
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[si::instance-ref], 1, x, @[ext::instance]);
if (ecl_unlikely(!ECL_FIXNUMP(index)))
}
unlikely_if (!ECL_FIXNUMP(index)) {
FEwrong_type_nth_arg(@[si::instance-ref], 2, index, @[fixnum]);
}
i = ecl_fixnum(index);
if (ecl_unlikely(i < 0 || i >= (cl_fixnum)x->instance.length))
unlikely_if (i < 0 || i >= (cl_fixnum)x->instance.length) {
FEtype_error_index(x, i);
}
@(return x->instance.slots[i]);
}
@ -101,26 +109,32 @@ clos_safe_instance_ref(cl_object x, cl_object index)
{
cl_fixnum i;
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[si::instance-ref], 1, x, @[ext::instance]);
if (ecl_unlikely(!ECL_FIXNUMP(index)))
}
unlikely_if (!ECL_FIXNUMP(index)) {
FEwrong_type_nth_arg(@[si::instance-ref], 2, index, @[fixnum]);
}
i = ecl_fixnum(index);
if (ecl_unlikely(i < 0 || i >= x->instance.length))
unlikely_if (i < 0 || i >= x->instance.length) {
FEtype_error_index(x, i);
}
x = x->instance.slots[i];
if (ecl_unlikely(x == ECL_UNBOUND))
unlikely_if (x == ECL_UNBOUND) {
x = _ecl_funcall4(@'slot-unbound', ECL_NIL, x, index);
}
@(return x);
}
cl_object
ecl_instance_set(cl_object x, cl_fixnum i, cl_object v)
{
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[si::instance-set], 1, x, @[ext::instance]);
if (ecl_unlikely(i >= x->instance.length || i < 0))
}
unlikely_if (i >= x->instance.length || i < 0) {
FEtype_error_index(x, i);
}
x->instance.slots[i] = v;
return(v);
}
@ -130,13 +144,16 @@ si_instance_set(cl_object x, cl_object index, cl_object value)
{
cl_fixnum i;
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[si::instance-set], 1, x, @[ext::instance]);
if (ecl_unlikely(!ECL_FIXNUMP(index)))
}
unlikely_if (!ECL_FIXNUMP(index)) {
FEwrong_type_nth_arg(@[si::instance-set], 2, index, @[fixnum]);
}
i = ecl_fixnum(index);
if (ecl_unlikely(i >= (cl_fixnum)x->instance.length || i < 0))
unlikely_if (i >= (cl_fixnum)x->instance.length || i < 0) {
FEtype_error_index(x, i);
}
x->instance.slots[i] = value;
@(return value);
}
@ -145,10 +162,12 @@ si_instance_set(cl_object x, cl_object index, cl_object value)
cl_object
ecl_compare_and_swap_instance(cl_object x, cl_fixnum i, cl_object old, cl_object new)
{
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[mp::compare-and-swap-instance], 1, x, @[ext::instance]);
if (ecl_unlikely(i >= x->instance.length || i < 0))
}
unlikely_if (i >= x->instance.length || i < 0) {
FEtype_error_index(x, i);
}
return ecl_compare_and_swap(x->instance.slots + i, old, new);
}
@ -157,23 +176,28 @@ mp_compare_and_swap_instance(cl_object x, cl_object index, cl_object old, cl_obj
{
cl_fixnum i;
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[mp::compare-and-swap-instance], 1, x, @[ext::instance]);
if (ecl_unlikely(!ECL_FIXNUMP(index)))
}
unlikely_if (!ECL_FIXNUMP(index)) {
FEwrong_type_nth_arg(@[mp::compare-and-swap-instance], 2, index, @[fixnum]);
}
i = ecl_fixnum(index);
if (ecl_unlikely(i >= (cl_fixnum)x->instance.length || i < 0))
unlikely_if (i >= (cl_fixnum)x->instance.length || i < 0) {
FEtype_error_index(x, i);
}
return ecl_compare_and_swap(x->instance.slots + i, old, new);
}
cl_object
ecl_atomic_incf_instance(cl_object x, cl_fixnum i, cl_object increment)
{
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[mp::atomic-incf-instance], 1, x, @[ext::instance]);
if (ecl_unlikely(i >= x->instance.length || i < 0))
}
unlikely_if (i >= x->instance.length || i < 0) {
FEtype_error_index(x, i);
}
return ecl_atomic_incf(x->instance.slots + i, increment);
}
@ -182,13 +206,16 @@ mp_atomic_incf_instance(cl_object x, cl_object index, cl_object increment)
{
cl_fixnum i;
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[mp::atomic-incf-instance], 1, x, @[ext::instance]);
if (ecl_unlikely(!ECL_FIXNUMP(index)))
}
unlikely_if (!ECL_FIXNUMP(index)) {
FEwrong_type_nth_arg(@[mp::atomic-incf-instance], 2, index, @[fixnum]);
}
i = ecl_fixnum(index);
if (ecl_unlikely(i >= (cl_fixnum)x->instance.length || i < 0))
unlikely_if (i >= (cl_fixnum)x->instance.length || i < 0) {
FEtype_error_index(x, i);
}
return ecl_atomic_incf(x->instance.slots + i, increment);
}
#endif /* ECL_THREADS */
@ -218,13 +245,16 @@ si_sl_makunbound(cl_object x, cl_object index)
{
cl_fixnum i;
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[si::sl-makunbound], 1, x, @[ext::instance]);
if (ecl_unlikely(!ECL_FIXNUMP(index)))
}
unlikely_if (!ECL_FIXNUMP(index)) {
FEwrong_type_nth_arg(@[si::sl-makunbound], 2, index, @[fixnum]);
}
i = ecl_fixnum(index);
unlikely_if (i >= x->instance.length || i < 0)
unlikely_if (i >= x->instance.length || i < 0) {
FEtype_error_index(x, i);
}
x->instance.slots[i] = ECL_UNBOUND;
@(return x);
}
@ -234,8 +264,9 @@ si_copy_instance(cl_object x)
{
cl_object y;
if (ecl_unlikely(!ECL_INSTANCEP(x)))
unlikely_if (!ECL_INSTANCEP(x)) {
FEwrong_type_nth_arg(@[si::copy-instance], 1, x, @[ext::instance]);
}
y = ecl_allocate_instance(x->instance.clas, x->instance.length);
y->instance.sig = x->instance.sig;
memcpy(y->instance.slots, x->instance.slots,