2006-08-04 Robert Love <rml@novell.com>

Glib Memory Slices!
	* configure.in: Require glib 2.10 or later.
	* src/NetworkManager.c, src/NetworkManagerAP.c, src/nm-ip4-config.c,
	  src/NetworkManagerAPList.c, src/NetworkManagerDbus.c,
	  src/NetworkManagerDbusUtils.c, src/nm-dbus-nmi.c, src/wpa.c,
	  src/nm-device-802-11-wireless.c: Convert applicable g_malloc and
	  g_new calls to g_slice_new.  Likewise for g_free to g_slice_free.
	  Memory Slices are the greatest thing since bread slices.
	* src/NetworkManagerAP.c: Also, fix memory leak.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1923 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Robert Love
2006-08-04 15:46:06 +00:00
committed by Robert Love
parent 086ea42dc6
commit e1620a9946
11 changed files with 43 additions and 32 deletions

View File

@@ -1,3 +1,15 @@
2006-08-04 Robert Love <rml@novell.com>
Glib Memory Slices!
* configure.in: Require glib 2.10 or later.
* src/NetworkManager.c, src/NetworkManagerAP.c, src/nm-ip4-config.c,
src/NetworkManagerAPList.c, src/NetworkManagerDbus.c,
src/NetworkManagerDbusUtils.c, src/nm-dbus-nmi.c, src/wpa.c,
src/nm-device-802-11-wireless.c: Convert applicable g_malloc and
g_new calls to g_slice_new. Likewise for g_free to g_slice_free.
Memory Slices are the greatest thing since bread slices.
* src/NetworkManagerAP.c: Also, fix memory leak.
2006-08-01 Robert Love <rml@novell.com> 2006-08-01 Robert Love <rml@novell.com>
* gnome/applet/main.c: Shutdown all VPN connections on logout. * gnome/applet/main.c: Shutdown all VPN connections on logout.

View File

@@ -139,7 +139,7 @@ PKG_CHECK_MODULES(GTHREAD, gthread-2.0)
AC_SUBST(GTHREAD_CFLAGS) AC_SUBST(GTHREAD_CFLAGS)
AC_SUBST(GTHREAD_LIBS) AC_SUBST(GTHREAD_LIBS)
PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.6) PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.10)
AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_LIBS)

View File

@@ -425,7 +425,7 @@ static NMData *nm_data_new (gboolean enable_test_devices)
NMData * data; NMData * data;
GSource * iosource; GSource * iosource;
data = g_new0 (NMData, 1); data = g_slice_new0 (NMData);
data->main_context = g_main_context_new (); data->main_context = g_main_context_new ();
data->main_loop = g_main_loop_new (data->main_context, FALSE); data->main_loop = g_main_loop_new (data->main_context, FALSE);
@@ -535,7 +535,7 @@ static void nm_data_free (NMData *data)
nm_hal_deinit (data); nm_hal_deinit (data);
memset (data, 0, sizeof (NMData)); g_slice_free (NMData, data);
} }
int nm_get_sigterm_pipe (void) int nm_get_sigterm_pipe (void)

View File

@@ -84,7 +84,7 @@ NMAccessPoint * nm_ap_new (void)
{ {
NMAccessPoint *ap; NMAccessPoint *ap;
ap = g_malloc0 (sizeof (NMAccessPoint)); ap = g_slice_new0 (NMAccessPoint);
ap->mode = IW_MODE_INFRA; ap->mode = IW_MODE_INFRA;
ap->refcount = 1; ap->refcount = 1;
ap->capabilities = NM_802_11_CAP_PROTO_NONE; ap->capabilities = NM_802_11_CAP_PROTO_NONE;
@@ -160,7 +160,7 @@ void nm_ap_unref (NMAccessPoint *ap)
g_object_unref (G_OBJECT (ap->security)); g_object_unref (G_OBJECT (ap->security));
memset (ap, 0, sizeof (NMAccessPoint)); memset (ap, 0, sizeof (NMAccessPoint));
g_free (ap); g_slice_free (NMAccessPoint, ap);
} }
} }
@@ -662,6 +662,8 @@ void nm_ap_add_capabilities_from_ie (NMAccessPoint *ap, const guint8 *wpa_ie, gu
caps |= NM_802_11_CAP_KEY_MGMT_PSK; caps |= NM_802_11_CAP_KEY_MGMT_PSK;
nm_ap_set_capabilities (ap, caps); nm_ap_set_capabilities (ap, caps);
g_slice_free (wpa_ie_data, cap_data);
} }

View File

@@ -46,16 +46,14 @@ struct NMAccessPointList
*/ */
NMAccessPointList *nm_ap_list_new (NMNetworkType type) NMAccessPointList *nm_ap_list_new (NMNetworkType type)
{ {
NMAccessPointList *list = g_new0 (NMAccessPointList, 1); NMAccessPointList *list = g_slice_new0 (NMAccessPointList);
g_return_val_if_fail (list != NULL, NULL);
nm_ap_list_ref (list); nm_ap_list_ref (list);
list->type = type; list->type = type;
list->mutex = g_mutex_new (); list->mutex = g_mutex_new ();
if (!list->mutex) if (!list->mutex)
{ {
g_free (list); g_slice_free (NMAccessPointList, list);
nm_warning ("nm_ap_list_new() could not create list mutex"); nm_warning ("nm_ap_list_new() could not create list mutex");
return (NULL); return (NULL);
} }
@@ -116,7 +114,7 @@ void nm_ap_list_unref (NMAccessPointList *list)
nm_unlock_mutex (list->mutex, __FUNCTION__); nm_unlock_mutex (list->mutex, __FUNCTION__);
g_mutex_free (list->mutex); g_mutex_free (list->mutex);
g_free(list); g_slice_free (NMAccessPointList, list);
} }
} }
@@ -695,12 +693,11 @@ NMAPListIter * nm_ap_list_iter_new (NMAccessPointList *list)
g_return_val_if_fail (list != NULL, NULL); g_return_val_if_fail (list != NULL, NULL);
if (!(iter = g_new0 (NMAPListIter, 1))) iter = g_slice_new (NMAPListIter);
return (NULL);
if (!nm_ap_list_lock (list)) if (!nm_ap_list_lock (list))
{ {
g_free (iter); g_slice_free (NMAPListIter, iter);
return (NULL); return (NULL);
} }
@@ -745,7 +742,7 @@ void nm_ap_list_iter_free (NMAPListIter *iter)
nm_ap_list_unlock (iter->list); nm_ap_list_unlock (iter->list);
memset (iter, 0, sizeof (struct NMAPListIter)); memset (iter, 0, sizeof (struct NMAPListIter));
g_free (iter); g_slice_free (NMAPListIter, iter);
} }

View File

@@ -251,7 +251,7 @@ static gboolean nm_dbus_signal_device_status_change (gpointer user_data)
dbus_message_unref (message); dbus_message_unref (message);
g_object_unref (G_OBJECT (cb_data->dev)); g_object_unref (G_OBJECT (cb_data->dev));
g_free (cb_data); g_slice_free (NMStatusChangeData, cb_data);
return FALSE; return FALSE;
} }
@@ -265,7 +265,7 @@ void nm_dbus_schedule_device_status_change_signal (NMData *data, NMDevice *dev,
g_return_if_fail (data != NULL); g_return_if_fail (data != NULL);
g_return_if_fail (dev != NULL); g_return_if_fail (dev != NULL);
cb_data = g_malloc0 (sizeof (NMStatusChangeData)); cb_data = g_slice_new0 (NMStatusChangeData);
g_object_ref (G_OBJECT (dev)); g_object_ref (G_OBJECT (dev));
cb_data->data = data; cb_data->data = data;
cb_data->dev = dev; cb_data->dev = dev;

View File

@@ -32,7 +32,7 @@ struct NMDbusMethodList
NMDbusMethodList * nm_dbus_method_list_new (NMDbusMethod validate_method) NMDbusMethodList * nm_dbus_method_list_new (NMDbusMethod validate_method)
{ {
NMDbusMethodList *list = g_malloc0 (sizeof (NMDbusMethodList)); NMDbusMethodList *list = g_slice_new0 (NMDbusMethodList);
list->validate_method = validate_method; list->validate_method = validate_method;
list->methods = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); list->methods = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
@@ -92,6 +92,6 @@ void nm_dbus_method_list_free (NMDbusMethodList *list)
if (list) if (list)
{ {
g_hash_table_destroy (list->methods); g_hash_table_destroy (list->methods);
g_free (list); g_slice_free (NMDbusMethodList, list);
} }
} }

View File

@@ -309,7 +309,7 @@ static void free_get_one_network_cb_data (GetOneNetworkCBData *data)
data->list = NULL; data->list = NULL;
data->network = NULL; data->network = NULL;
data->data = NULL; data->data = NULL;
g_free (data); g_slice_free (GetOneNetworkCBData, data);
} }
} }
@@ -327,7 +327,7 @@ static void free_get_networks_cb_data (GetNetworksCBData *data)
nm_ap_list_unref (data->list); nm_ap_list_unref (data->list);
data->data = NULL; data->data = NULL;
data->list = NULL; data->list = NULL;
g_free (data); g_slice_free (GetNetworksCBData, data);
} }
} }
@@ -540,7 +540,7 @@ static void nm_dbus_get_networks_cb (DBusPendingCall *pcall, void *user_data)
dbus_message_unref (message); dbus_message_unref (message);
if (net_pcall) if (net_pcall)
{ {
GetOneNetworkCBData * net_cb_data = g_malloc0 (sizeof (GetOneNetworkCBData)); GetOneNetworkCBData * net_cb_data = g_slice_new0 (GetOneNetworkCBData);
net_cb_data->data = cb_data->data; net_cb_data->data = cb_data->data;
net_cb_data->network = g_strdup (value); net_cb_data->network = g_strdup (value);
@@ -584,7 +584,7 @@ void nm_dbus_update_allowed_networks (DBusConnection *connection, NMAccessPointL
dbus_message_unref (message); dbus_message_unref (message);
if (pcall) if (pcall)
{ {
GetNetworksCBData * cb_data = g_malloc0 (sizeof (GetNetworksCBData)); GetNetworksCBData * cb_data = g_slice_new0 (GetNetworksCBData);
cb_data->data = data; cb_data->data = data;
nm_ap_list_ref (list); nm_ap_list_ref (list);
@@ -616,7 +616,7 @@ void nm_dbus_update_one_allowed_network (DBusConnection *connection, const char
return; return;
} }
cb_data = g_malloc0 (sizeof (GetOneNetworkCBData)); cb_data = g_slice_new0 (GetOneNetworkCBData);
cb_data->data = data; cb_data->data = data;
cb_data->network = g_strdup (network); cb_data->network = g_strdup (network);
cb_data->list = data->allowed_ap_list; cb_data->list = data->allowed_ap_list;

View File

@@ -535,7 +535,7 @@ wireless_event_helper (gpointer user_data)
} }
g_object_unref (G_OBJECT (self)); g_object_unref (G_OBJECT (self));
g_free (cb_data->data); g_free (cb_data->data);
g_free (cb_data); g_slice_free (WirelessEventCBData, cb_data);
return FALSE; return FALSE;
} }
@@ -553,7 +553,7 @@ nm_device_802_11_wireless_event (NmNetlinkMonitor *monitor,
if (NM_DEVICE (self) != NM_DEVICE (obj)) if (NM_DEVICE (self) != NM_DEVICE (obj))
return; return;
cb_data = g_malloc0 (sizeof (WirelessEventCBData)); cb_data = g_slice_new0 (WirelessEventCBData);
cb_data->dev = self; cb_data->dev = self;
g_object_ref (G_OBJECT (self)); g_object_ref (G_OBJECT (self));
cb_data->data = g_malloc (data_len); cb_data->data = g_malloc (data_len);
@@ -1815,7 +1815,7 @@ free_process_scan_cb_data (NMWirelessScanResults *cb_data)
g_free (cb_data->results); g_free (cb_data->results);
g_object_unref (G_OBJECT (cb_data->dev)); g_object_unref (G_OBJECT (cb_data->dev));
memset (cb_data, 0, sizeof (NMWirelessScanResults)); memset (cb_data, 0, sizeof (NMWirelessScanResults));
g_free (cb_data); g_slice_free (NMWirelessScanResults, cb_data);
} }
/* /*
@@ -1997,7 +1997,7 @@ request_and_convert_scan_results (NMDevice80211Wireless *self)
* messages over DBUS. Plus, that way the main thread is the only thread that has * messages over DBUS. Plus, that way the main thread is the only thread that has
* to modify the device's access point list. * to modify the device's access point list.
*/ */
scan_results = g_malloc0 (sizeof (NMWirelessScanResults)); scan_results = g_slice_new0 (NMWirelessScanResults);
g_object_ref (G_OBJECT (self)); g_object_ref (G_OBJECT (self));
scan_results->dev = self; scan_results->dev = self;
scan_results->results = buf; scan_results->results = buf;

View File

@@ -61,7 +61,7 @@ struct NMIP4Config
NMIP4Config *nm_ip4_config_new (void) NMIP4Config *nm_ip4_config_new (void)
{ {
NMIP4Config *config = g_malloc0 (sizeof (NMIP4Config)); NMIP4Config *config = g_slice_new0 (NMIP4Config);
config->refcount = 1; config->refcount = 1;
@@ -75,7 +75,7 @@ NMIP4Config *nm_ip4_config_copy (NMIP4Config *src_config)
g_return_val_if_fail (src_config != NULL, NULL); g_return_val_if_fail (src_config != NULL, NULL);
dst_config = g_malloc0 (sizeof (NMIP4Config)); dst_config = g_slice_new0 (NMIP4Config);
dst_config->refcount = 1; dst_config->refcount = 1;
dst_config->ip4_address = nm_ip4_config_get_address (src_config); dst_config->ip4_address = nm_ip4_config_get_address (src_config);
@@ -124,7 +124,7 @@ void nm_ip4_config_unref (NMIP4Config *config)
g_slist_free (config->nis_servers); g_slist_free (config->nis_servers);
memset (config, 0, sizeof (NMIP4Config)); memset (config, 0, sizeof (NMIP4Config));
g_free (config); g_slice_free (NMIP4Config, config);
} }
} }

View File

@@ -432,7 +432,7 @@ wpa_ie_data * wpa_parse_wpa_ie(const u8 *wpa_ie, size_t wpa_ie_len)
if (!wpa_ie || wpa_ie_len <= 0) if (!wpa_ie || wpa_ie_len <= 0)
return NULL; return NULL;
data = g_malloc0 (sizeof (wpa_ie_data)); data = g_slice_new0 (wpa_ie_data);
if (wpa_ie_len >= 1 && wpa_ie[0] == WPA_RSN_INFO_ELEM) if (wpa_ie_len >= 1 && wpa_ie[0] == WPA_RSN_INFO_ELEM)
err = wpa_parse_wpa_ie_rsn(wpa_ie, wpa_ie_len, data); err = wpa_parse_wpa_ie_rsn(wpa_ie, wpa_ie_len, data);
@@ -441,7 +441,7 @@ wpa_ie_data * wpa_parse_wpa_ie(const u8 *wpa_ie, size_t wpa_ie_len)
if (err != 0) if (err != 0)
{ {
g_free (data); g_slice_free (wpa_ie_data, data);
data = NULL; data = NULL;
} }