Mercurial > urweb
diff src/c/urweb.c @ 1084:8e240c007442
Don't relify in bigLibs; fix some memory bugs in transactionals
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Wed, 23 Dec 2009 14:27:12 -0500 |
parents | 2eb585274501 |
children | e81434513720 |
line wrap: on
line diff
--- a/src/c/urweb.c Wed Dec 23 12:25:34 2009 -0500 +++ b/src/c/urweb.c Wed Dec 23 14:27:12 2009 -0500 @@ -2851,7 +2851,8 @@ ctx->transactionals[i].rollback(ctx->transactionals[i].data); for (i = 0; i < ctx->used_transactionals; ++i) - ctx->transactionals[i].free(ctx->transactionals[i].data); + if (ctx->transactionals[i].free) + ctx->transactionals[i].free(ctx->transactionals[i].data); return uw_db_rollback(ctx); } @@ -2859,7 +2860,7 @@ void uw_register_transactional(uw_context ctx, void *data, uw_callback commit, uw_callback rollback, uw_callback free) { if (ctx->used_transactionals >= ctx->n_transactionals) { - ctx->transactionals = realloc(ctx->transactionals, ctx->used_transactionals+1); + ctx->transactionals = realloc(ctx->transactionals, sizeof(transactional) * (ctx->used_transactionals+1)); ++ctx->n_transactionals; }