From b0f5a7b53015ad3de87da115c940ba92f6143116 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 23 Oct 2011 13:51:43 +0000 Subject: [PATCH] possibly fixing 1840 and/or related issues --- src/core/gnunet-service-core_sessions.c | 14 +++++--------- src/core/gnunet-service-core_typemap.c | 12 ++++++++++++ src/core/gnunet-service-core_typemap.h | 8 ++++++++ 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/core/gnunet-service-core_sessions.c b/src/core/gnunet-service-core_sessions.c index 61532ac9c..f159da205 100644 --- a/src/core/gnunet-service-core_sessions.c +++ b/src/core/gnunet-service-core_sessions.c @@ -200,11 +200,8 @@ GSC_SESSIONS_end (const struct GNUNET_PeerIdentity *pid) gettext_noop ("# entries in session map"), GNUNET_CONTAINER_multihashmap_size (sessions), GNUNET_NO); - if (NULL != session->tmap) - { - GSC_TYPEMAP_destroy (session->tmap); - session->tmap = NULL; - } + GSC_TYPEMAP_destroy (session->tmap); + session->tmap = NULL; GNUNET_free (session); } @@ -260,6 +257,7 @@ GSC_SESSIONS_create (const struct GNUNET_PeerIdentity *peer, "Creating session for peer `%4s'\n", GNUNET_i2s (peer)); #endif session = GNUNET_malloc (sizeof (struct Session)); + session->tmap = GSC_TYPEMAP_create (); session->peer = *peer; session->kxinfo = kx; session->time_established = GNUNET_TIME_absolute_get (); @@ -767,8 +765,7 @@ GSC_SESSIONS_set_typemap (const struct GNUNET_PeerIdentity *peer, NULL, 0, /* FIXME: ATS */ session->tmap, nmap); - if (NULL != session->tmap) - GSC_TYPEMAP_destroy (session->tmap); + GSC_TYPEMAP_destroy (session->tmap); session->tmap = nmap; } @@ -802,8 +799,7 @@ GSC_SESSIONS_add_to_typemap (const struct GNUNET_PeerIdentity *peer, NULL, 0, /* FIXME: ATS */ session->tmap, nmap); - if (NULL != session->tmap) - GSC_TYPEMAP_destroy (session->tmap); + GSC_TYPEMAP_destroy (session->tmap); session->tmap = nmap; } diff --git a/src/core/gnunet-service-core_typemap.c b/src/core/gnunet-service-core_typemap.c index e4f75bd00..5d40820df 100644 --- a/src/core/gnunet-service-core_typemap.c +++ b/src/core/gnunet-service-core_typemap.c @@ -259,6 +259,18 @@ GSC_TYPEMAP_extend (const struct GSC_TypeMap *tmap, } +/** + * Create an empty type map. + * + * @param map a type map + */ +struct GSC_TypeMap * +GSC_TYPEMAP_create () +{ + return GNUNET_malloc (sizeof (struct GSC_TypeMap)); +} + + /** * Free the given type map. * diff --git a/src/core/gnunet-service-core_typemap.h b/src/core/gnunet-service-core_typemap.h index 72eb5b566..d589c0b1c 100644 --- a/src/core/gnunet-service-core_typemap.h +++ b/src/core/gnunet-service-core_typemap.h @@ -98,6 +98,14 @@ GSC_TYPEMAP_extend (const struct GSC_TypeMap *tmap, const uint16_t *types, unsigned int tcnt); +/** + * Create an empty type map. + * + * @param map a type map + */ +struct GSC_TypeMap * +GSC_TYPEMAP_create (void); + /** * Free the given type map. -- 2.25.1