[or-cvs] r12053: Change meaning of "freefn" argument to smartlist_uniq so tha (in tor/trunk: . src/common src/or)

nickm at seul.org nickm at seul.org
Fri Oct 19 18:56:28 UTC 2007


Author: nickm
Date: 2007-10-19 14:56:28 -0400 (Fri, 19 Oct 2007)
New Revision: 12053

Modified:
   tor/trunk/
   tor/trunk/src/common/container.c
   tor/trunk/src/or/routerparse.c
   tor/trunk/src/or/test.c
Log:
 r15967 at catbus:  nickm | 2007-10-19 14:14:47 -0400
 Change meaning of "freefn" argument to smartlist_uniq so that we can remove duplicates from a list without freeing them.



Property changes on: tor/trunk
___________________________________________________________________
 svk:merge ticket from /tor/trunk [r15967] on 8246c3cf-6607-4228-993b-4d95d33730f1

Modified: tor/trunk/src/common/container.c
===================================================================
--- tor/trunk/src/common/container.c	2007-10-19 18:56:26 UTC (rev 12052)
+++ tor/trunk/src/common/container.c	2007-10-19 18:56:28 UTC (rev 12053)
@@ -471,8 +471,7 @@
 
 /** Given a sorted smartlist <b>sl</b> and the comparison function used to
  * sort it, remove all duplicate members.  If free_fn is provided, calls
- * free_fn on each duplicate.  Otherwise, frees them with tor_free(), which
- * may not be what you want..  Preserves order.
+ * free_fn on each duplicate.  Otherwise, just removes them.  Preserves order.
  */
 void
 smartlist_uniq(smartlist_t *sl,
@@ -485,8 +484,6 @@
                 (const void **)&(sl->list[i])) == 0) {
       if (free_fn)
         free_fn(sl->list[i]);
-      else
-        tor_free(sl->list[i]);
       smartlist_del_keeporder(sl, i--);
     }
   }
@@ -530,7 +527,7 @@
 void
 smartlist_uniq_strings(smartlist_t *sl)
 {
-  smartlist_uniq(sl, _compare_string_ptrs, NULL);
+  smartlist_uniq(sl, _compare_string_ptrs, _tor_free);
 }
 
 /* Heap-based priority queue implementation for O(lg N) insert and remove.
@@ -653,7 +650,7 @@
 void
 smartlist_uniq_digests(smartlist_t *sl)
 {
-  smartlist_uniq(sl, _compare_digests, NULL);
+  smartlist_uniq(sl, _compare_digests, _tor_free);
 }
 
 #define DEFINE_MAP_STRUCTS(maptype, keydecl, prefix)      \

Modified: tor/trunk/src/or/routerparse.c
===================================================================
--- tor/trunk/src/or/routerparse.c	2007-10-19 18:56:26 UTC (rev 12052)
+++ tor/trunk/src/or/routerparse.c	2007-10-19 18:56:28 UTC (rev 12053)
@@ -3119,6 +3119,6 @@
   smartlist_sort(versions, _compare_tor_version_str_ptr);
 
   if (remove_duplicates)
-    smartlist_uniq(versions, _compare_tor_version_str_ptr, NULL);
+    smartlist_uniq(versions, _compare_tor_version_str_ptr, _tor_free);
 }
 

Modified: tor/trunk/src/or/test.c
===================================================================
--- tor/trunk/src/or/test.c	2007-10-19 18:56:26 UTC (rev 12052)
+++ tor/trunk/src/or/test.c	2007-10-19 18:56:28 UTC (rev 12053)
@@ -1469,7 +1469,7 @@
                      "50,noon,radar,a,man,a,plan,a,canal,panama,radar,noon,50",
                      ",", 0, 0);
   smartlist_sort(sl, _compare_strs);
-  smartlist_uniq(sl, _compare_strs, NULL);
+  smartlist_uniq(sl, _compare_strs, _tor_free);
   cp = smartlist_join_strings(sl, ",", 0, NULL);
   test_streq(cp, "50,a,canal,man,noon,panama,plan,radar");
   tor_free(cp);



More information about the tor-commits mailing list