From 5c6ab345183ff646b8ba3fe28eab2ca1106aa10f Mon Sep 17 00:00:00 2001 From: Partho Date: Mon, 14 Apr 2025 11:43:49 -0400 Subject: [PATCH] fixed issue with records being size of their reference (8 bytes) not their actual total --- src/symbol_table.c | 14 ++++++++------ tests/sprint2/test/sp2_llnode.alpha | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/symbol_table.c b/src/symbol_table.c index 5370912..897d787 100644 --- a/src/symbol_table.c +++ b/src/symbol_table.c @@ -182,8 +182,9 @@ TableNode *setRecOffsetInfo(SymbolTable* scope, TableNode *node) { largest = 8; counter++; } - else if((getAdInfoType(this) == TYPE_RECORD) && (node != getTypeEntry(this))){ - offsets[counter] = getRecTotal(getTypeEntry(this)); + else if((getAdInfoType(this) == TYPE_RECORD)){ + offsets[counter] = 8; + printf("hitting record and adding to largest"); total_size = total_size + offsets[counter]; largest = offsets[counter]; counter++; @@ -202,7 +203,8 @@ TableNode *setRecOffsetInfo(SymbolTable* scope, TableNode *node) { } else { printdebug( - "[TYPE CHECK] passed an invalid (first) parameter to a function definition. seeing %d",getAdInfoType(this)); + "[TYPE CHECK] passed an invalid (first) parameter to a function definition. seeing %d. Type of entry is %s. Name attempted to pass is %s.",getAdInfoType(this),getType(this),getName(this)); + return undefined; } this = getNextEntry(this); @@ -237,8 +239,8 @@ TableNode *setRecOffsetInfo(SymbolTable* scope, TableNode *node) { counter++; this = getNextEntry(this); } - else if((getAdInfoType(this) == TYPE_RECORD) && (node != getTypeEntry(this))){ - int s = getRecTotal(getTypeEntry(this)); + else if((getAdInfoType(this) == TYPE_RECORD)){ + int s = 8; if (s > largest) { largest = s; } @@ -1365,7 +1367,7 @@ TableNode *getNextEntry(TableNode *tn) { // Uses pointers to the table node to print the info TableNode *printTableNode(TableNode *tn) { if (DEBUG == 0) { - return tn; + return tn; } if (tn == NULL) { diff --git a/tests/sprint2/test/sp2_llnode.alpha b/tests/sprint2/test/sp2_llnode.alpha index b102ba8..31f0c2b 100644 --- a/tests/sprint2/test/sp2_llnode.alpha +++ b/tests/sprint2/test/sp2_llnode.alpha @@ -48,6 +48,7 @@ foo (x) := { } bar1(a,b) := { + [integer : t] return a * b; }