add bool value to speed up primitives
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ ArgonObject *new_object() {
|
||||
object->dict = createHashmap_GC();
|
||||
add_field(object, "__class__", ARGON_TYPE_TYPE);
|
||||
add_field(object, "__base__", BASE_CLASS);
|
||||
object->as_bool = true;
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ ArgonObject *new_string_object(char*data, size_t length) {
|
||||
object->value.as_str.data = ar_alloc_atomic(length);
|
||||
memcpy(object->value.as_str.data, data, length);
|
||||
object->value.as_str.length = length;
|
||||
object->as_bool = length;
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user