impliment micro optimisations by reordering and restructing the structs so they are smaller.

This commit is contained in:
William Bell
2025-09-09 18:41:19 +01:00
parent 774890de1d
commit 1a5abd9543
10 changed files with 239 additions and 229 deletions

View File

@@ -67,8 +67,7 @@ inline void add_builtin_field(ArgonObject *target, built_in_fields field,
return;
}
}
size_t position = target->built_in_slot_length++;
if (target->built_in_slot_length > target->built_in_slot_size) {
if (target->built_in_slot_length >= target->built_in_slot_size) {
target->built_in_slot_size *= 2;
if (target->built_in_slot_size == 0) target->built_in_slot_size = 2;
else if (target->built_in_slot_size>BUILT_IN_FIELDS_COUNT) target->built_in_slot_size = BUILT_IN_FIELDS_COUNT;
@@ -76,7 +75,7 @@ inline void add_builtin_field(ArgonObject *target, built_in_fields field,
ar_realloc(target->built_in_slot, target->built_in_slot_size *
sizeof(struct built_in_slot));
}
target->built_in_slot[position] = (struct built_in_slot){field, object};
target->built_in_slot[target->built_in_slot_length++] = (struct built_in_slot){field, object};
// hashmap_insert_GC(target->dict, built_in_field_hashes[field],
// (char *)built_in_field_names[field], object, 0);
}