On Wed, 2006-06-07 at 21:02 +1000, Bojan Smojver wrote:
> I noticed these casts in other cleanup registrations, so I just assumed
> they were safe. What did you have in mind? A wrapper function?
Like this?
--
Bojan
Index: dbd/apr_dbd_sqlite2.c
===================================================================
--- dbd/apr_dbd_sqlite2.c (revision 412365)
+++ dbd/apr_dbd_sqlite2.c (working copy)
@@ -67,6 +67,11 @@
} \
} while(0);
+static apr_status_t free_table(void *data)
+{
+ sqlite_free_table(data);
+ return APR_SUCCESS;
+}
static int dbd_sqlite_select(apr_pool_t * pool, apr_dbd_t * sql,
apr_dbd_results_t ** results, const char *query,
@@ -97,7 +102,7 @@
(*results)->random = seek;
if (tuples > 0)
- apr_pool_cleanup_register(pool, result, (void *) sqlite_free_table,
+ apr_pool_cleanup_register(pool, result, free_table,
apr_pool_cleanup_null);
ret = 0;
@@ -216,11 +221,17 @@
return ret;
}
+static apr_status_t free_mem(void *data)
+{
+ sqlite_freemem(data);
+ return APR_SUCCESS
+}
+
static const char *dbd_sqlite_escape(apr_pool_t * pool, const char *arg,
apr_dbd_t * sql)
{
char *ret = sqlite_mprintf("%q", arg);
- apr_pool_cleanup_register(pool, ret, (void *) sqlite_freemem,
+ apr_pool_cleanup_register(pool, ret, free_mem,
apr_pool_cleanup_null);
return ret;
}