diff options
author | Adam Chlipala <adam@chlipala.net> | 2015-11-19 10:31:47 -0500 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2015-11-19 10:31:47 -0500 |
commit | 7a49a90f8b092e1c2e58d3e754578cff3bf06b18 (patch) | |
tree | 241c66d172a00cfee919a4e4aee49393fc792d42 /src/lru_cache.sml | |
parent | 0c231060050adf556348b06f078c994f4a0e65b4 (diff) |
Fix a few C memory bugs
Diffstat (limited to 'src/lru_cache.sml')
-rw-r--r-- | src/lru_cache.sml | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lru_cache.sml b/src/lru_cache.sml index e9ed5f73..5c05b261 100644 --- a/src/lru_cache.sml +++ b/src/lru_cache.sml @@ -111,16 +111,16 @@ fun setupQuery {index, params} = (* If the output is null, it means we had too much recursion, so it's a miss. *) string " if (v && v->output != NULL) {", newline, - (* string (" puts(\"SQLCACHE: hit " ^ i ^ ".\");"), *) - (* newline, *) + (*string (" puts(\"SQLCACHE: hit " ^ i ^ ".\");"), + newline,*) string " uw_write(ctx, v->output);", newline, string " return v->result;", newline, string " } else {", newline, - (* string (" puts(\"SQLCACHE: miss " ^ i ^ ".\");"), *) - (* newline, *) + (*string (" puts(\"SQLCACHE: miss " ^ i ^ ".\");"), + newline,*) string " uw_recordingStart(ctx);", newline, string " return NULL;", @@ -136,14 +136,16 @@ fun setupQuery {index, params} = newline, string (" char *ks[] = {" ^ revArgs ^ "};"), newline, - string (" uw_Sqlcache_Value *v = malloc(sizeof(uw_Sqlcache_Value));"), + string (" uw_Sqlcache_Value *v = calloc(1, sizeof(uw_Sqlcache_Value));"), newline, string " v->result = strdup(s);", newline, string " v->output = uw_recordingRead(ctx);", newline, - (* string (" puts(\"SQLCACHE: stored " ^ i ^ ".\");"), *) - (* newline, *) + string " v->timeValid = 0;", + newline, + (*string (" puts(\"SQLCACHE: stored " ^ i ^ ".\");"), + newline,*) string (" uw_Sqlcache_store(ctx, cache" ^ i ^ ", ks, v);"), newline, string " return uw_unit_v;", |