From: Nils Durner Date: Mon, 9 Nov 2009 18:45:18 +0000 (+0000) Subject: fix leak, improve API X-Git-Tag: initial-import-from-subversion-38251~23135 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=42788c9183bb61c5a5435b4a9e28ff21663494a3;p=oweals%2Fgnunet.git fix leak, improve API --- diff --git a/src/include/gnunet_container_lib.h b/src/include/gnunet_container_lib.h index edda98e07..4debd2ccf 100644 --- a/src/include/gnunet_container_lib.h +++ b/src/include/gnunet_container_lib.h @@ -1010,6 +1010,13 @@ GNUNET_CONTAINER_slist_get (const struct GNUNET_CONTAINER_SList_Iterator *i, size_t *len); +/** + * Release an iterator + * @param i iterator + */ +void GNUNET_CONTAINER_slist_iter_destroy (struct GNUNET_CONTAINER_SList_Iterator *i); + + #if 0 /* keep Emacsens' auto-indent happy */ { #endif diff --git a/src/util/common_allocation.c b/src/util/common_allocation.c index 4c1d53c2d..1e546b962 100644 --- a/src/util/common_allocation.c +++ b/src/util/common_allocation.c @@ -31,7 +31,7 @@ #define INT_MAX 0x7FFFFFFF #endif -#ifdef MINGW +#if 0 #define W32_MEM_LIMIT 200000000 #endif diff --git a/src/util/container_slist.c b/src/util/container_slist.c index 4f5607a28..715dcee32 100644 --- a/src/util/container_slist.c +++ b/src/util/container_slist.c @@ -332,4 +332,13 @@ GNUNET_CONTAINER_slist_get (const struct GNUNET_CONTAINER_SList_Iterator *i, return i->elem->elem; } +/** + * Release an iterator + * @param i iterator + */ +void GNUNET_CONTAINER_slist_iter_destroy (struct GNUNET_CONTAINER_SList_Iterator *i) +{ + GNUNET_free (i); +} + /* end of container_slist.c */ diff --git a/src/util/network.c b/src/util/network.c index a16380736..361012d77 100644 --- a/src/util/network.c +++ b/src/util/network.c @@ -666,6 +666,7 @@ GNUNET_NETWORK_fdset_copy (struct GNUNET_NETWORK_FDSet *to, GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT, handle, len); } + GNUNET_CONTAINER_slist_iter_destroy (iter); #endif /* */ } @@ -954,6 +955,7 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds, on_next = GNUNET_YES; } } + GNUNET_CONTAINER_slist_iter_destroy (i); } /* Poll for faulty pipes */ @@ -982,6 +984,7 @@ GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds, else on_next = GNUNET_NO; } + GNUNET_CONTAINER_slist_iter_destroy (i); } /* FIXME */ diff --git a/src/util/test_container_slist.c b/src/util/test_container_slist.c index bc134d26a..3f3b489e9 100644 --- a/src/util/test_container_slist.c +++ b/src/util/test_container_slist.c @@ -68,7 +68,7 @@ main (int argc, char *argv[]) GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT, &j, sizeof (j)); } - GNUNET_free (it); + GNUNET_CONTAINER_slist_iter_destroy (it); CHECK (GNUNET_CONTAINER_slist_count (l) == 200); i = 198; CHECK (GNUNET_CONTAINER_slist_contains (l, &i, sizeof (i))); @@ -93,7 +93,7 @@ main (int argc, char *argv[]) GNUNET_CONTAINER_slist_erase (it); } - GNUNET_free (it); + GNUNET_CONTAINER_slist_iter_destroy (it); CHECK (GNUNET_CONTAINER_slist_count (l) == 100); i = 99; CHECK (GNUNET_CONTAINER_slist_contains (l, &i, sizeof (i)) == GNUNET_NO);