]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Make rend_cache_entry_free() typecheck when possible.
authorNick Mathewson <nickm@torproject.org>
Sat, 12 Dec 2009 06:30:59 +0000 (01:30 -0500)
committerNick Mathewson <nickm@torproject.org>
Sat, 12 Dec 2009 06:31:35 +0000 (01:31 -0500)
src/or/rendcommon.c

index a68ee0c501ca94021d30f6db3eccff36202bb545..92a9af78c12d76303bcfecbaff457a9c9bf20008 100644 (file)
@@ -778,14 +778,21 @@ rend_cache_init(void)
 
 /** Helper: free storage held by a single service descriptor cache entry. */
 static void
-_rend_cache_entry_free(void *p)
+rend_cache_entry_free(rend_cache_entry_t *e)
 {
-  rend_cache_entry_t *e = p;
+  if (!e)
+    return;
   rend_service_descriptor_free(e->parsed);
   tor_free(e->desc);
   tor_free(e);
 }
 
+static void
+_rend_cache_entry_free(void *p)
+{
+  rend_cache_entry_free(p);
+}
+
 /** Free all storage held by the service descriptor cache. */
 void
 rend_cache_free_all(void)
@@ -814,7 +821,7 @@ rend_cache_clean(void)
     ent = (rend_cache_entry_t*)val;
     if (ent->parsed->timestamp < cutoff) {
       iter = strmap_iter_next_rmv(rend_cache, iter);
-      _rend_cache_entry_free(ent);
+      rend_cache_entry_free(ent);
     } else {
       iter = strmap_iter_next(rend_cache, iter);
     }
@@ -842,7 +849,7 @@ rend_cache_clean_v2_descs_as_dir(void)
       log_info(LD_REND, "Removing descriptor with ID '%s' from cache",
                safe_str(key_base32));
       iter = digestmap_iter_next_rmv(rend_cache_v2_dir, iter);
-      _rend_cache_entry_free(ent);
+      rend_cache_entry_free(ent);
     } else {
       iter = digestmap_iter_next(rend_cache_v2_dir, iter);
     }