Skip to content

Commit 171f292

Browse files
committed
fix: fix memory error for recursive type str and prn functions
Before, we attempted to free some memory that was never allocated (since we just print type string literals for recursive portions of a type).
1 parent 284533a commit 171f292

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

src/StructUtils.hs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@ memberPrn _ _ (_, (RecTy t)) =
3333
unlines
3434
[ " temp = \"" ++ tyToC t ++ "\";",
3535
" sprintf(bufferPtr, \"%s \", temp);",
36-
" bufferPtr += strlen(temp) + 1;",
37-
" if(temp) { CARP_FREE(temp); temp = NULL; }"
36+
" bufferPtr += strlen(temp) + 1;"
3837
]
3938
memberPrn typeEnv env (memberName, memberTy) =
4039
let (prefix, strFuncType) = memberStrCallingConvention "prn" typeEnv env memberTy
@@ -63,8 +62,7 @@ memberPrnSize :: TypeEnv -> Env -> (String, Ty) -> String
6362
memberPrnSize _ _ (_, (RecTy t)) =
6463
unlines
6564
[ " temp = \"" ++ tyToC t ++ "\";",
66-
" size += snprintf(NULL, 0, \"%s \", temp);",
67-
" if(temp) { CARP_FREE(temp); temp = NULL; }"
65+
" size += snprintf(NULL, 0, \"%s \", temp);"
6866
]
6967
memberPrnSize typeEnv env (memberName, memberTy) =
7068
let (prefix, strFuncType) = memberStrCallingConvention "prn" typeEnv env memberTy

0 commit comments

Comments
 (0)