mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-25 14:01:07 -08:00
cosmetic changes in assignment.d and clos/instance.d
This commit is contained in:
parent
c45098e17a
commit
46d74c5a66
2 changed files with 68 additions and 34 deletions
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue