add bool value to speed up primitives

This commit is contained in:
2025-08-29 12:58:02 +01:00
parent 0f0a3f5d31
commit c01dee80b0
5 changed files with 24 additions and 7 deletions

View File

@@ -398,6 +398,7 @@ ArgonObject *new_number_object(mpq_t number) {
add_field(object, "__class__", ARGON_NUMBER_TYPE);
object->type = TYPE_NUMBER;
object->value.as_number = mpq_new_gc_from(number);
object->as_bool = mpq_cmp_si(number, 0, 1) != 0;
return object;
}
@@ -409,6 +410,7 @@ ArgonObject *new_number_object_from_long(long n, unsigned long d) {
mpq_set_si(r, n, d);
object->type = TYPE_NUMBER;
object->value.as_number = mpq_new_gc_from(r);
object->as_bool = n!=0;
mpq_clear(r);
return object;
}
@@ -421,6 +423,7 @@ ArgonObject *new_number_object_from_double(double d) {
mpq_set_d(r, d);
object->type = TYPE_NUMBER;
object->value.as_number = mpq_new_gc_from(r);
object->as_bool = d!=0;
mpq_clear(r);
return object;
}