Prevented NO-OP calls to the memory allocator

Also shaved off about 1-2 milliseconds of execution time of fib-memo.toy
This commit is contained in:
2023-02-26 21:20:22 +11:00
parent 1064b69d04
commit 624a0c80ba
7 changed files with 44 additions and 25 deletions

View File

@@ -62,7 +62,7 @@ void Toy_freeLiteral(Toy_Literal literal) {
TOY_FREE_ARRAY(unsigned char, TOY_AS_FUNCTION(literal).inner.bytecode, TOY_AS_FUNCTION_BYTECODE_LENGTH(literal));
}
if (TOY_IS_TYPE(literal)) {
if (TOY_IS_TYPE(literal) && TOY_AS_TYPE(literal).capacity > 0) {
for (int i = 0; i < TOY_AS_TYPE(literal).count; i++) {
Toy_freeLiteral(((Toy_Literal*)(TOY_AS_TYPE(literal).subtypes))[i]);
}