[evolution-data-server] Prefer GSlice over heap allocation for short-lived structures
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Prefer GSlice over heap allocation for short-lived structures
- Date: Tue, 21 Jan 2020 18:09:00 +0000 (UTC)
commit 604ba98559758f8002a94869c58ddc693fbc2e51
Author: Milan Crha <mcrha redhat com>
Date: Tue Jan 21 18:50:52 2020 +0100
Prefer GSlice over heap allocation for short-lived structures
It might be quicker to use GSlice than to allocate new memory on the heap,
thus let's try to benefit from it.
.../libedata-book/e-book-backend-sexp.c | 21 ++++----
src/addressbook/libedata-book/e-book-cache.c | 4 +-
.../libedata-book/e-book-meta-backend.c | 4 +-
src/calendar/libecal/e-cal-check-timezones.c | 4 +-
src/calendar/libecal/e-cal-client.c | 56 +++++++++++-----------
.../libecal/e-cal-component-alarm-instance.c | 4 +-
.../libecal/e-cal-component-alarm-repeat.c | 4 +-
.../libecal/e-cal-component-alarm-trigger.c | 8 ++--
src/calendar/libecal/e-cal-component-alarm.c | 4 +-
src/calendar/libecal/e-cal-component-alarms.c | 4 +-
src/calendar/libecal/e-cal-component-attendee.c | 4 +-
src/calendar/libecal/e-cal-component-datetime.c | 6 +--
src/calendar/libecal/e-cal-component-id.c | 4 +-
src/calendar/libecal/e-cal-component-organizer.c | 4 +-
.../libecal/e-cal-component-parameter-bag.c | 4 +-
src/calendar/libecal/e-cal-component-period.c | 6 +--
.../libecal/e-cal-component-property-bag.c | 4 +-
src/calendar/libecal/e-cal-component-range.c | 4 +-
src/calendar/libecal/e-cal-component-text.c | 4 +-
src/calendar/libecal/e-cal-recur.c | 8 ++--
src/calendar/libecal/e-reminder-watcher.c | 22 +++++----
src/calendar/libedata-cal/e-cal-backend-sexp.c | 40 +++++++---------
src/calendar/libedata-cal/e-cal-cache.c | 14 +++---
src/calendar/libedata-cal/e-cal-meta-backend.c | 4 +-
src/camel/camel-db.c | 4 +-
src/camel/camel-filter-driver.c | 10 +++-
src/camel/camel-folder-summary.c | 4 +-
src/camel/camel-folder.c | 4 +-
src/camel/camel-gpg-context.c | 8 ++--
src/camel/camel-trie.c | 4 +-
src/camel/camel-uid-cache.c | 4 +-
src/camel/camel-url-scanner.c | 4 +-
src/camel/camel-vee-data-cache.c | 19 ++++++--
src/camel/camel-weak-ref-group.c | 8 ++--
.../providers/imapx/camel-imapx-conn-manager.c | 32 ++++++-------
src/camel/providers/imapx/camel-imapx-folder.c | 4 +-
src/camel/providers/imapx/camel-imapx-job.c | 4 +-
src/camel/providers/imapx/camel-imapx-server.c | 36 ++++++++------
src/camel/providers/local/camel-mbox-store.c | 31 +++++++-----
src/libebackend/e-backend.c | 27 +++++++----
src/libebackend/e-cache.c | 12 ++---
src/libebackend/e-data-factory.c | 16 +++----
src/libebackend/e-server-side-source.c | 4 +-
src/libebackend/e-source-registry-server.c | 4 +-
src/libebackend/e-sqlite3-vfs.c | 4 +-
src/libebackend/e-user-prompter-server.c | 4 +-
src/libebackend/e-user-prompter.c | 6 +--
src/libedataserver/e-credentials.c | 8 ++--
src/libedataserver/e-operation-pool.c | 4 +-
src/libedataserver/e-proxy.c | 14 ++----
src/libedataserver/e-source-credentials-provider.c | 4 +-
src/libedataserver/e-source.c | 7 +--
src/libedataserver/e-webdav-discover.c | 8 ++--
src/libedataserver/e-webdav-session.c | 16 +++----
.../e-credentials-prompter-impl-oauth2.c | 4 +-
src/libedataserverui/e-credentials-prompter.c | 17 ++++---
src/libedataserverui/e-reminders-widget.c | 4 +-
src/libedataserverui/e-trust-prompt.c | 4 +-
src/libedataserverui/e-webdav-discover-widget.c | 8 ++--
59 files changed, 315 insertions(+), 277 deletions(-)
---
diff --git a/src/addressbook/libedata-book/e-book-backend-sexp.c
b/src/addressbook/libedata-book/e-book-backend-sexp.c
index f6946e5c1..18497cf77 100644
--- a/src/addressbook/libedata-book/e-book-backend-sexp.c
+++ b/src/addressbook/libedata-book/e-book-backend-sexp.c
@@ -32,20 +32,19 @@
#include <locale.h>
#include <string.h>
-typedef struct _SearchContext SearchContext;
typedef gboolean (*CompareFunc) (const gchar *, const gchar *, const gchar *);
+typedef struct _SearchContext {
+ EContact *contact;
+} SearchContext;
+
struct _EBookBackendSExpPrivate {
ESExp *search_sexp;
gchar *text;
- SearchContext *search_context;
+ SearchContext search_context;
GRecMutex search_context_lock;
};
-struct _SearchContext {
- EContact *contact;
-};
-
G_DEFINE_TYPE_WITH_PRIVATE (EBookBackendSExp, e_book_backend_sexp, G_TYPE_OBJECT)
static gboolean
@@ -1085,7 +1084,6 @@ book_backend_sexp_finalize (GObject *object)
g_object_unref (priv->search_sexp);
g_free (priv->text);
- g_free (priv->search_context);
g_rec_mutex_clear (&priv->search_context_lock);
@@ -1106,7 +1104,6 @@ static void
e_book_backend_sexp_init (EBookBackendSExp *sexp)
{
sexp->priv = e_book_backend_sexp_get_instance_private (sexp);
- sexp->priv->search_context = g_new (SearchContext, 1);
g_rec_mutex_init (&sexp->priv->search_context_lock);
}
@@ -1157,13 +1154,13 @@ e_book_backend_sexp_new (const gchar *text)
sexp->priv->search_sexp, 0,
symbols[ii].name,
(ESExpIFunc *) symbols[ii].func,
- sexp->priv->search_context);
+ &(sexp->priv->search_context));
} else {
e_sexp_add_function (
sexp->priv->search_sexp, 0,
symbols[ii].name,
symbols[ii].func,
- sexp->priv->search_context);
+ &(sexp->priv->search_context));
}
}
@@ -1219,13 +1216,13 @@ e_book_backend_sexp_match_contact (EBookBackendSExp *sexp,
e_book_backend_sexp_lock (sexp);
- sexp->priv->search_context->contact = g_object_ref (contact);
+ sexp->priv->search_context.contact = g_object_ref (contact);
r = e_sexp_eval (sexp->priv->search_sexp);
retval = (r && r->type == ESEXP_RES_BOOL && r->value.boolean);
- g_object_unref (sexp->priv->search_context->contact);
+ g_object_unref (sexp->priv->search_context.contact);
e_sexp_result_free (sexp->priv->search_sexp, r);
diff --git a/src/addressbook/libedata-book/e-book-cache.c b/src/addressbook/libedata-book/e-book-cache.c
index 99ca5e135..01877edd3 100644
--- a/src/addressbook/libedata-book/e-book-cache.c
+++ b/src/addressbook/libedata-book/e-book-cache.c
@@ -171,7 +171,7 @@ e_book_cache_search_data_new (const gchar *uid,
g_return_val_if_fail (uid != NULL, NULL);
g_return_val_if_fail (vcard != NULL, NULL);
- data = g_new0 (EBookCacheSearchData, 1);
+ data = g_slice_new0 (EBookCacheSearchData);
data->uid = g_strdup (uid);
data->vcard = g_strdup (vcard);
data->extra = g_strdup (extra);
@@ -216,7 +216,7 @@ e_book_cache_search_data_free (gpointer ptr)
g_free (data->uid);
g_free (data->vcard);
g_free (data->extra);
- g_free (data);
+ g_slice_free (EBookCacheSearchData, data);
}
}
diff --git a/src/addressbook/libedata-book/e-book-meta-backend.c
b/src/addressbook/libedata-book/e-book-meta-backend.c
index 047a905a5..2edbe2f4c 100644
--- a/src/addressbook/libedata-book/e-book-meta-backend.c
+++ b/src/addressbook/libedata-book/e-book-meta-backend.c
@@ -151,7 +151,7 @@ e_book_meta_backend_info_new (const gchar *uid,
g_return_val_if_fail (uid != NULL, NULL);
- info = g_new0 (EBookMetaBackendInfo, 1);
+ info = g_slice_new0 (EBookMetaBackendInfo);
info->uid = g_strdup (uid);
info->revision = g_strdup (revision);
info->object = g_strdup (object);
@@ -198,7 +198,7 @@ e_book_meta_backend_info_free (gpointer ptr)
g_free (info->revision);
g_free (info->object);
g_free (info->extra);
- g_free (info);
+ g_slice_free (EBookMetaBackendInfo, info);
}
}
diff --git a/src/calendar/libecal/e-cal-check-timezones.c b/src/calendar/libecal/e-cal-check-timezones.c
index 5b8f9f458..fb1dd80b5 100644
--- a/src/calendar/libecal/e-cal-check-timezones.c
+++ b/src/calendar/libecal/e-cal-check-timezones.c
@@ -530,7 +530,7 @@ e_cal_client_tzlookup_icalcomp_data_new (ICalComponent *icomp)
g_return_val_if_fail (I_CAL_IS_COMPONENT (icomp), NULL);
- lookup_data = g_new0 (ECalClientTzlookupICalCompData, 1);
+ lookup_data = g_slice_new0 (ECalClientTzlookupICalCompData);
lookup_data->icomp = g_object_ref (icomp);
lookup_data->tzcache = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
@@ -575,7 +575,7 @@ e_cal_client_tzlookup_icalcomp_data_free (ECalClientTzlookupICalCompData *lookup
if (lookup_data) {
g_clear_object (&lookup_data->icomp);
g_hash_table_destroy (lookup_data->tzcache);
- g_free (lookup_data);
+ g_slice_free (ECalClientTzlookupICalCompData, lookup_data);
}
}
diff --git a/src/calendar/libecal/e-cal-client.c b/src/calendar/libecal/e-cal-client.c
index d4f6246cf..7b85efff2 100644
--- a/src/calendar/libecal/e-cal-client.c
+++ b/src/calendar/libecal/e-cal-client.c
@@ -694,7 +694,7 @@ idle_proxy_notify_data_free (gpointer ptr)
g_clear_object (&ipn->client);
g_free (ipn->property_name);
g_value_unset (&ipn->property_value);
- g_free (ipn);
+ g_slice_free (IdleProxyNotifyData, ipn);
}
}
@@ -724,7 +724,7 @@ cal_client_dbus_proxy_notify_cb (EDBusCalendar *dbus_proxy,
if (client == NULL)
return;
- ipn = g_new0 (IdleProxyNotifyData, 1);
+ ipn = g_slice_new0 (IdleProxyNotifyData);
ipn->client = g_object_ref (client);
ipn->property_name = g_strdup (pspec->name);
g_value_init (&ipn->property_value, pspec->value_type);
@@ -2158,6 +2158,12 @@ struct comp_instance {
ICalTime *end;
};
+static struct comp_instance *
+comp_instance_new (void)
+{
+ return g_slice_new0 (struct comp_instance);
+}
+
static void
comp_instance_free (gpointer ptr)
{
@@ -2167,7 +2173,7 @@ comp_instance_free (gpointer ptr)
g_clear_object (&ci->comp);
g_clear_object (&ci->start);
g_clear_object (&ci->end);
- g_free (ci);
+ g_slice_free (struct comp_instance, ci);
}
}
@@ -2191,7 +2197,7 @@ add_instance_cb (ICalComponent *icomp,
instances_hold = user_data;
list = instances_hold->instances;
- ci = g_new0 (struct comp_instance, 1);
+ ci = comp_instance_new ();
/* add the instance to the list */
ci->comp = e_cal_component_new_from_icalcomponent (i_cal_component_clone (icomp));
@@ -2373,7 +2379,7 @@ process_detached_instances (GSList *instances,
* (ie, detached instances with no master object) */
while (unprocessed_instances != NULL) {
cid = unprocessed_instances->data;
- ci = g_new0 (struct comp_instance, 1);
+ ci = comp_instance_new ();
ci->comp = g_object_ref (cid->comp);
ci->start = i_cal_time_clone (cid->start);
ci->end = i_cal_time_clone (cid->end);
@@ -2421,7 +2427,7 @@ generate_instances (ECalClient *client,
ECalComponentDateTime *dtstart, *dtend;
/* keep the detached instances apart */
- ci = g_new0 (struct comp_instance, 1);
+ ci = comp_instance_new ();
ci->comp = g_object_ref (comp);
dtstart = e_cal_component_get_dtstart (comp);
@@ -2475,17 +2481,15 @@ generate_instances (ECalClient *client,
comp_instance_free (ci);
}
} else {
- struct instances_info *instances_hold;
+ struct instances_info instances_hold;
- instances_hold = g_new0 (struct instances_info, 1);
- instances_hold->instances = &instances;
+ memset (&instances_hold, 0, sizeof (struct instances_info));
+ instances_hold.instances = &instances;
e_cal_recur_generate_instances_sync (
- e_cal_component_get_icalcomponent (comp), starttt, endtt, add_instance_cb,
instances_hold,
+ e_cal_component_get_icalcomponent (comp), starttt, endtt, add_instance_cb,
&instances_hold,
e_cal_client_tzlookup_cb, client,
default_zone, cancellable, NULL);
-
- g_free (instances_hold);
}
}
@@ -2603,7 +2607,7 @@ free_get_objects_async_data (struct get_objects_async_data *goad)
g_object_unref (goad->comp);
g_free (goad->query);
g_free (goad->uid);
- g_free (goad);
+ g_slice_free (struct get_objects_async_data, goad);
}
static void
@@ -2781,7 +2785,7 @@ e_cal_client_generate_instances (ECalClient *client,
if (!use_cancellable)
use_cancellable = g_cancellable_new ();
- goad = g_new0 (struct get_objects_async_data, 1);
+ goad = g_slice_new0 (struct get_objects_async_data);
goad->cancellable = g_object_ref (use_cancellable);
goad->client = g_object_ref (client);
goad->start = start;
@@ -2893,27 +2897,26 @@ static void
generate_instances_for_object_got_objects_cb (struct get_objects_async_data *goad,
GSList *objects)
{
- struct instances_info *instances_hold;
+ struct instances_info instances_hold;
GSList *instances = NULL;
g_return_if_fail (goad != NULL);
- instances_hold = g_new0 (struct instances_info, 1);
- instances_hold->instances = &instances;
+ memset (&instances_hold, 0, sizeof (struct instances_info));
+ instances_hold.instances = &instances;
/* generate all instances in the given time range */
generate_instances (
goad->client, goad->start, goad->end, objects,
- goad->cancellable, add_instance_cb, instances_hold);
+ goad->cancellable, add_instance_cb, &instances_hold);
/* it also frees 'instances' GSList */
process_instances (
- goad->client, goad->comp, *(instances_hold->instances),
+ goad->client, goad->comp, *(instances_hold.instances),
goad->cb, goad->cb_data);
/* clean up */
free_get_objects_async_data (goad);
- g_free (instances_hold);
}
/**
@@ -2989,7 +2992,7 @@ e_cal_client_generate_instances_for_object (ECalClient *client,
if (!use_cancellable)
use_cancellable = g_cancellable_new ();
- goad = g_new0 (struct get_objects_async_data, 1);
+ goad = g_slice_new0 (struct get_objects_async_data);
goad->cancellable = g_object_ref (use_cancellable);
goad->client = g_object_ref (client);
goad->start = start;
@@ -3038,7 +3041,7 @@ e_cal_client_generate_instances_for_object_sync (ECalClient *client,
ECalComponent *comp;
const gchar *uid;
GSList *instances = NULL;
- struct instances_info *instances_hold;
+ struct instances_info instances_hold;
g_return_if_fail (E_IS_CAL_CLIENT (client));
@@ -3068,21 +3071,20 @@ e_cal_client_generate_instances_for_object_sync (ECalClient *client,
uid = e_cal_component_get_uid (comp);
- instances_hold = g_new0 (struct instances_info, 1);
- instances_hold->instances = &instances;
+ memset (&instances_hold, 0, sizeof (struct instances_info));
+ instances_hold.instances = &instances;
/* generate all instances in the given time range */
generate_instances (
client, start, end,
get_objects_sync (client, start, end, uid),
- cancellable, add_instance_cb, instances_hold);
+ cancellable, add_instance_cb, &instances_hold);
/* it also frees 'instances' GSList */
- process_instances (client, comp, *(instances_hold->instances), cb, cb_data);
+ process_instances (client, comp, *(instances_hold.instances), cb, cb_data);
/* clean up */
g_object_unref (comp);
- g_free (instances_hold);
}
typedef struct _ForeachTZIDCallbackData ForeachTZIDCallbackData;
diff --git a/src/calendar/libecal/e-cal-component-alarm-instance.c
b/src/calendar/libecal/e-cal-component-alarm-instance.c
index e02302c39..8e5328d67 100644
--- a/src/calendar/libecal/e-cal-component-alarm-instance.c
+++ b/src/calendar/libecal/e-cal-component-alarm-instance.c
@@ -66,7 +66,7 @@ e_cal_component_alarm_instance_new (const gchar *uid,
g_return_val_if_fail (uid != NULL, NULL);
- instance = g_new0 (ECalComponentAlarmInstance, 1);
+ instance = g_slice_new0 (ECalComponentAlarmInstance);
instance->uid = g_strdup (uid);
instance->instance_time = instance_time;
instance->occur_start = occur_start;
@@ -114,7 +114,7 @@ e_cal_component_alarm_instance_free (gpointer instance)
if (instnc) {
g_free (instnc->uid);
- g_free (instnc);
+ g_slice_free (ECalComponentAlarmInstance, instnc);
}
}
diff --git a/src/calendar/libecal/e-cal-component-alarm-repeat.c
b/src/calendar/libecal/e-cal-component-alarm-repeat.c
index f697e00d0..18c4cc35d 100644
--- a/src/calendar/libecal/e-cal-component-alarm-repeat.c
+++ b/src/calendar/libecal/e-cal-component-alarm-repeat.c
@@ -77,7 +77,7 @@ e_cal_component_alarm_repeat_new_seconds (gint repetitions,
{
ECalComponentAlarmRepeat *repeat;
- repeat = g_new0 (ECalComponentAlarmRepeat, 1);
+ repeat = g_slice_new0 (ECalComponentAlarmRepeat);
repeat->repetitions = repetitions;
repeat->interval = i_cal_duration_new_from_int (interval_seconds);
@@ -119,7 +119,7 @@ e_cal_component_alarm_repeat_free (gpointer repeat)
if (rpt) {
g_clear_object (&rpt->interval);
- g_free (rpt);
+ g_slice_free (ECalComponentAlarmRepeat, rpt);
}
}
diff --git a/src/calendar/libecal/e-cal-component-alarm-trigger.c
b/src/calendar/libecal/e-cal-component-alarm-trigger.c
index 7b5306206..7a91add5e 100644
--- a/src/calendar/libecal/e-cal-component-alarm-trigger.c
+++ b/src/calendar/libecal/e-cal-component-alarm-trigger.c
@@ -65,7 +65,7 @@ e_cal_component_alarm_trigger_new_relative (ECalComponentAlarmTriggerKind kind,
g_return_val_if_fail (kind != E_CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE, NULL);
g_return_val_if_fail (I_CAL_IS_DURATION (duration), NULL);
- trigger = g_new0 (ECalComponentAlarmTrigger, 1);
+ trigger = g_slice_new0 (ECalComponentAlarmTrigger);
trigger->parameter_bag = e_cal_component_parameter_bag_new ();
e_cal_component_alarm_trigger_set_relative (trigger, kind, duration);
@@ -95,7 +95,7 @@ e_cal_component_alarm_trigger_new_absolute (const ICalTime *absolute_time)
g_return_val_if_fail (I_CAL_IS_TIME (absolute_time), NULL);
- trigger = g_new0 (ECalComponentAlarmTrigger, 1);
+ trigger = g_slice_new0 (ECalComponentAlarmTrigger);
trigger->parameter_bag = e_cal_component_parameter_bag_new ();
e_cal_component_alarm_trigger_set_absolute (trigger, absolute_time);
@@ -126,7 +126,7 @@ e_cal_component_alarm_trigger_new_from_property (const ICalProperty *property)
if (i_cal_property_isa ((ICalProperty *) property) != I_CAL_TRIGGER_PROPERTY)
return NULL;
- trigger = g_new0 (ECalComponentAlarmTrigger, 1);
+ trigger = g_slice_new0 (ECalComponentAlarmTrigger);
trigger->parameter_bag = e_cal_component_parameter_bag_new ();
e_cal_component_alarm_trigger_set_from_property (trigger, property);
@@ -182,7 +182,7 @@ e_cal_component_alarm_trigger_free (gpointer trigger)
e_cal_component_parameter_bag_free (trg->parameter_bag);
g_clear_object (&trg->rel_duration);
g_clear_object (&trg->abs_time);
- g_free (trg);
+ g_slice_free (ECalComponentAlarmTrigger, trg);
}
}
diff --git a/src/calendar/libecal/e-cal-component-alarm.c b/src/calendar/libecal/e-cal-component-alarm.c
index 525e33147..52ecc2a8e 100644
--- a/src/calendar/libecal/e-cal-component-alarm.c
+++ b/src/calendar/libecal/e-cal-component-alarm.c
@@ -66,7 +66,7 @@ e_cal_component_alarm_new (void)
{
ECalComponentAlarm *alarm;
- alarm = g_new0 (ECalComponentAlarm, 1);
+ alarm = g_slice_new0 (ECalComponentAlarm);
alarm->uid = e_util_generate_uid ();
alarm->action = E_CAL_COMPONENT_ALARM_UNKNOWN;
alarm->property_bag = e_cal_component_property_bag_new ();
@@ -215,7 +215,7 @@ e_cal_component_alarm_free (gpointer alarm)
e_cal_component_property_bag_free (alrm->property_bag);
g_slist_free_full (alrm->attendees, e_cal_component_attendee_free);
g_slist_free_full (alrm->attachments, g_object_unref);
- g_free (alrm);
+ g_slice_free (ECalComponentAlarm, alrm);
}
}
diff --git a/src/calendar/libecal/e-cal-component-alarms.c b/src/calendar/libecal/e-cal-component-alarms.c
index 7eeb464c0..c7c5e9219 100644
--- a/src/calendar/libecal/e-cal-component-alarms.c
+++ b/src/calendar/libecal/e-cal-component-alarms.c
@@ -58,7 +58,7 @@ e_cal_component_alarms_new (ECalComponent *comp)
g_return_val_if_fail (E_IS_CAL_COMPONENT (comp), NULL);
- alarms = g_new0 (ECalComponentAlarms, 1);
+ alarms = g_slice_new0 (ECalComponentAlarms);
alarms->comp = g_object_ref (comp);
return alarms;
@@ -106,7 +106,7 @@ e_cal_component_alarms_free (gpointer alarms)
if (alrms) {
g_clear_object (&alrms->comp);
g_slist_free_full (alrms->instances, e_cal_component_alarm_instance_free);
- g_free (alrms);
+ g_slice_free (ECalComponentAlarms, alrms);
}
}
diff --git a/src/calendar/libecal/e-cal-component-attendee.c b/src/calendar/libecal/e-cal-component-attendee.c
index 3799b2441..7a0fe28c6 100644
--- a/src/calendar/libecal/e-cal-component-attendee.c
+++ b/src/calendar/libecal/e-cal-component-attendee.c
@@ -65,7 +65,7 @@ e_cal_component_attendee_new (void)
{
ECalComponentAttendee *attendee;
- attendee = g_new0 (ECalComponentAttendee, 1);
+ attendee = g_slice_new0 (ECalComponentAttendee);
attendee->cutype = I_CAL_CUTYPE_NONE;
attendee->role = I_CAL_ROLE_REQPARTICIPANT;
attendee->partstat = I_CAL_PARTSTAT_NEEDSACTION;
@@ -218,7 +218,7 @@ e_cal_component_attendee_free (gpointer attendee)
g_free (att->sentby);
g_free (att->cn);
g_free (att->language);
- g_free (att);
+ g_slice_free (ECalComponentAttendee, att);
}
}
diff --git a/src/calendar/libecal/e-cal-component-datetime.c b/src/calendar/libecal/e-cal-component-datetime.c
index 3f724e858..29b040b36 100644
--- a/src/calendar/libecal/e-cal-component-datetime.c
+++ b/src/calendar/libecal/e-cal-component-datetime.c
@@ -59,7 +59,7 @@ e_cal_component_datetime_new (const ICalTime *value,
g_return_val_if_fail (I_CAL_IS_TIME (value), NULL);
- dt = g_new0 (ECalComponentDateTime, 1);
+ dt = g_slice_new0 (ECalComponentDateTime);
e_cal_component_datetime_set (dt, value, tzid);
return dt;
@@ -88,7 +88,7 @@ e_cal_component_datetime_new_take (ICalTime *value,
g_return_val_if_fail (I_CAL_IS_TIME (value), NULL);
- dt = g_new0 (ECalComponentDateTime, 1);
+ dt = g_slice_new0 (ECalComponentDateTime);
dt->value = value;
dt->tzid = tzid;
@@ -134,7 +134,7 @@ e_cal_component_datetime_free (gpointer dt)
if (pdt) {
g_clear_object (&pdt->value);
g_free (pdt->tzid);
- g_free (pdt);
+ g_slice_free (ECalComponentDateTime, pdt);
}
}
diff --git a/src/calendar/libecal/e-cal-component-id.c b/src/calendar/libecal/e-cal-component-id.c
index aec9e45d4..d5d719e8c 100644
--- a/src/calendar/libecal/e-cal-component-id.c
+++ b/src/calendar/libecal/e-cal-component-id.c
@@ -87,7 +87,7 @@ e_cal_component_id_new_take (gchar *uid,
rid = NULL;
}
- id = g_new0 (ECalComponentId, 1);
+ id = g_slice_new0 (ECalComponentId);
id->uid = uid;
id->rid = rid;
@@ -128,7 +128,7 @@ e_cal_component_id_free (gpointer id)
if (eid) {
g_free (eid->uid);
g_free (eid->rid);
- g_free (eid);
+ g_slice_free (ECalComponentId, eid);
}
}
diff --git a/src/calendar/libecal/e-cal-component-organizer.c
b/src/calendar/libecal/e-cal-component-organizer.c
index 126937638..dcb75d6d9 100644
--- a/src/calendar/libecal/e-cal-component-organizer.c
+++ b/src/calendar/libecal/e-cal-component-organizer.c
@@ -56,7 +56,7 @@ e_cal_component_organizer_new (void)
{
ECalComponentOrganizer *organizer;
- organizer = g_new0 (ECalComponentOrganizer, 1);
+ organizer = g_slice_new0 (ECalComponentOrganizer);
organizer->parameter_bag = e_cal_component_parameter_bag_new ();
return organizer;
@@ -175,7 +175,7 @@ e_cal_component_organizer_free (gpointer organizer)
g_free (org->sentby);
g_free (org->cn);
g_free (org->language);
- g_free (org);
+ g_slice_free (ECalComponentOrganizer, org);
}
}
diff --git a/src/calendar/libecal/e-cal-component-parameter-bag.c
b/src/calendar/libecal/e-cal-component-parameter-bag.c
index 95437c864..785d15822 100644
--- a/src/calendar/libecal/e-cal-component-parameter-bag.c
+++ b/src/calendar/libecal/e-cal-component-parameter-bag.c
@@ -48,7 +48,7 @@ e_cal_component_parameter_bag_new (void)
{
ECalComponentParameterBag *bag;
- bag = g_new0 (ECalComponentParameterBag, 1);
+ bag = g_slice_new0 (ECalComponentParameterBag);
bag->parameters = g_ptr_array_new_with_free_func (g_object_unref);
return bag;
@@ -127,7 +127,7 @@ e_cal_component_parameter_bag_free (gpointer bag)
if (bg) {
g_ptr_array_unref (bg->parameters);
- g_free (bg);
+ g_slice_free (ECalComponentParameterBag, bg);
}
}
diff --git a/src/calendar/libecal/e-cal-component-period.c b/src/calendar/libecal/e-cal-component-period.c
index 860c7780e..80f107d82 100644
--- a/src/calendar/libecal/e-cal-component-period.c
+++ b/src/calendar/libecal/e-cal-component-period.c
@@ -61,7 +61,7 @@ e_cal_component_period_new_datetime (const ICalTime *start,
g_return_val_if_fail (I_CAL_IS_TIME (start), NULL);
- period = g_new0 (ECalComponentPeriod, 1);
+ period = g_slice_new0 (ECalComponentPeriod);
period->kind = E_CAL_COMPONENT_PERIOD_DATETIME;
e_cal_component_period_set_datetime_full (period, start, end);
@@ -91,7 +91,7 @@ e_cal_component_period_new_duration (const ICalTime *start,
g_return_val_if_fail (I_CAL_IS_TIME (start), NULL);
g_return_val_if_fail (I_CAL_IS_DURATION (duration), NULL);
- period = g_new0 (ECalComponentPeriod, 1);
+ period = g_slice_new0 (ECalComponentPeriod);
period->kind = E_CAL_COMPONENT_PERIOD_DURATION;
e_cal_component_period_set_duration_full (period, start, duration);
@@ -150,7 +150,7 @@ e_cal_component_period_free (gpointer period)
g_clear_object (&pd->start);
g_clear_object (&pd->end);
g_clear_object (&pd->duration);
- g_free (pd);
+ g_slice_free (ECalComponentPeriod, pd);
}
}
diff --git a/src/calendar/libecal/e-cal-component-property-bag.c
b/src/calendar/libecal/e-cal-component-property-bag.c
index cec7538d7..dd7f53c27 100644
--- a/src/calendar/libecal/e-cal-component-property-bag.c
+++ b/src/calendar/libecal/e-cal-component-property-bag.c
@@ -48,7 +48,7 @@ e_cal_component_property_bag_new (void)
{
ECalComponentPropertyBag *bag;
- bag = g_new0 (ECalComponentPropertyBag, 1);
+ bag = g_slice_new0 (ECalComponentPropertyBag);
bag->properties = g_ptr_array_new_with_free_func (g_object_unref);
return bag;
@@ -127,7 +127,7 @@ e_cal_component_property_bag_free (gpointer bag)
if (bg) {
g_ptr_array_unref (bg->properties);
- g_free (bg);
+ g_slice_free (ECalComponentPropertyBag, bg);
}
}
diff --git a/src/calendar/libecal/e-cal-component-range.c b/src/calendar/libecal/e-cal-component-range.c
index 964a45170..04be682df 100644
--- a/src/calendar/libecal/e-cal-component-range.c
+++ b/src/calendar/libecal/e-cal-component-range.c
@@ -84,7 +84,7 @@ e_cal_component_range_new_take (ECalComponentRangeKind kind,
g_return_val_if_fail (datetime != NULL, NULL);
- range = g_new0 (ECalComponentRange, 1);
+ range = g_slice_new0 (ECalComponentRange);
range->kind = kind;
range->datetime = datetime;
@@ -127,7 +127,7 @@ e_cal_component_range_free (gpointer range)
if (rng) {
e_cal_component_datetime_free (rng->datetime);
- g_free (rng);
+ g_slice_free (ECalComponentRange, rng);
}
}
diff --git a/src/calendar/libecal/e-cal-component-text.c b/src/calendar/libecal/e-cal-component-text.c
index ab3b555f2..332468604 100644
--- a/src/calendar/libecal/e-cal-component-text.c
+++ b/src/calendar/libecal/e-cal-component-text.c
@@ -54,7 +54,7 @@ e_cal_component_text_new (const gchar *value,
{
ECalComponentText *text;
- text = g_new0 (ECalComponentText, 1);
+ text = g_slice_new0 (ECalComponentText);
text->value = g_strdup (value);
text->altrep = g_strdup (altrep);
@@ -96,7 +96,7 @@ e_cal_component_text_free (gpointer text)
if (te) {
g_free (te->value);
g_free (te->altrep);
- g_free (te);
+ g_slice_free (ECalComponentText, te);
}
}
diff --git a/src/calendar/libecal/e-cal-recur.c b/src/calendar/libecal/e-cal-recur.c
index dc1e457ca..52613cb18 100644
--- a/src/calendar/libecal/e-cal-recur.c
+++ b/src/calendar/libecal/e-cal-recur.c
@@ -106,7 +106,7 @@ e_instance_time_new (const ICalTime *tt,
if (!tt)
return NULL;
- it = g_new0 (EInstanceTime, 1);
+ it = g_slice_new0 (EInstanceTime);
it->tt = i_cal_time_clone (tt);
it->duration_set = duration && !i_cal_duration_is_null_duration (duration);
@@ -135,7 +135,7 @@ e_instance_time_free (gpointer ptr)
if (it) {
g_clear_object (&it->tt);
- g_free (it);
+ g_slice_free (EInstanceTime, it);
}
}
@@ -1782,7 +1782,7 @@ e_cal_recur_from_icalproperty (ICalProperty *prop,
g_return_val_if_fail (prop != NULL, NULL);
- r = g_new (ECalRecurrence, 1);
+ r = g_slice_new0 (ECalRecurrence);
if (exception) {
ir = i_cal_property_get_exrule (prop);
@@ -1918,7 +1918,7 @@ e_cal_recur_free (ECalRecurrence *r)
g_list_free (r->bysecond);
g_list_free (r->bysetpos);
- g_free (r);
+ g_slice_free (ECalRecurrence, r);
}
/* Generates one year's worth of recurrence instances. Returns TRUE if all the
diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
index 3075e46c8..e104aa880 100644
--- a/src/calendar/libecal/e-reminder-watcher.c
+++ b/src/calendar/libecal/e-reminder-watcher.c
@@ -181,7 +181,7 @@ client_data_new (EReminderWatcher *watcher,
g_return_val_if_fail (E_IS_REMINDER_WATCHER (watcher), NULL);
g_return_val_if_fail (E_IS_CAL_CLIENT (client), NULL);
- cd = g_new0 (ClientData, 1);
+ cd = g_slice_new0 (ClientData);
cd->watcher = watcher;
cd->client = client;
cd->view = NULL;
@@ -225,7 +225,7 @@ client_data_free (gpointer ptr)
if (cd) {
client_data_free_view (cd);
g_clear_object (&cd->client);
- g_free (cd);
+ g_slice_free (ClientData, cd);
}
}
@@ -421,7 +421,7 @@ e_reminder_data_new_take_component (const gchar *source_uid,
g_return_val_if_fail (component != NULL, NULL);
g_return_val_if_fail (instance != NULL, NULL);
- rd = g_new0 (EReminderData, 1);
+ rd = g_slice_new0 (EReminderData);
rd->source_uid = g_strdup (source_uid);
rd->component = component;
rd->instance = e_cal_component_alarm_instance_copy (instance);
@@ -490,7 +490,7 @@ e_reminder_data_free (gpointer rd)
g_clear_object (&ptr->component);
e_cal_component_alarm_instance_free (ptr->instance);
g_free (ptr->source_uid);
- g_free (ptr);
+ g_slice_free (EReminderData, ptr);
}
}
@@ -775,7 +775,7 @@ objects_changed_data_free (gpointer ptr)
g_clear_object (&ocd->client);
g_slist_free_full (ocd->ids, (GDestroyNotify) e_cal_component_id_free);
g_clear_object (&ocd->zone);
- g_free (ocd);
+ g_slice_free (ObjectsChangedData, ocd);
}
}
@@ -978,7 +978,7 @@ e_reminder_watcher_objects_changed (EReminderWatcher *watcher,
ObjectsChangedData *ocd;
GTask *task;
- ocd = g_new0 (ObjectsChangedData, 1);
+ ocd = g_slice_new (ObjectsChangedData);
ocd->client = g_object_ref (client);
ocd->ids = ids;
ocd->interval_start = client_get_last_notification_time (client) + 1;
@@ -1332,6 +1332,12 @@ typedef struct _EmitSignalData {
gboolean is_snoozed; /* only for the triggered signal */
} EmitSignalData;
+static EmitSignalData *
+emit_signal_data_new (void)
+{
+ return g_slice_new0 (EmitSignalData);
+}
+
static void
emit_signal_data_free (gpointer ptr)
{
@@ -1340,7 +1346,7 @@ emit_signal_data_free (gpointer ptr)
if (esd) {
g_clear_object (&esd->watcher);
g_slist_free_full (esd->reminders, e_reminder_data_free);
- g_free (esd);
+ g_slice_free (EmitSignalData, esd);
}
}
@@ -1368,7 +1374,7 @@ e_reminder_watcher_emit_signal_idle_multiple (EReminderWatcher *watcher,
{
EmitSignalData *esd;
- esd = g_new0 (EmitSignalData, 1);
+ esd = emit_signal_data_new ();
esd->watcher = g_object_ref (watcher);
esd->signal_id = signal_id;
esd->reminders = g_slist_copy_deep ((GSList *) reminders, (GCopyFunc) e_reminder_data_copy, NULL);
diff --git a/src/calendar/libedata-cal/e-cal-backend-sexp.c b/src/calendar/libedata-cal/e-cal-backend-sexp.c
index 20aa13e64..21da70722 100644
--- a/src/calendar/libedata-cal/e-cal-backend-sexp.c
+++ b/src/calendar/libedata-cal/e-cal-backend-sexp.c
@@ -31,16 +31,7 @@
#include "e-cal-backend-sexp.h"
-typedef struct _SearchContext SearchContext;
-
-struct _ECalBackendSExpPrivate {
- ESExp *search_sexp;
- gchar *text;
- SearchContext *search_context;
- GRecMutex search_context_lock;
-};
-
-struct _SearchContext {
+typedef struct _SearchContext {
ECalComponent *comp;
ETimezoneCache *cache;
gboolean occurs;
@@ -49,6 +40,13 @@ struct _SearchContext {
gboolean expr_range_set;
time_t expr_range_start;
time_t expr_range_end;
+} SearchContext;
+
+struct _ECalBackendSExpPrivate {
+ ESExp *search_sexp;
+ gchar *text;
+ SearchContext search_context;
+ GRecMutex search_context_lock;
};
G_DEFINE_TYPE_WITH_PRIVATE (ECalBackendSExp, e_cal_backend_sexp, G_TYPE_OBJECT)
@@ -1148,7 +1146,6 @@ cal_backend_sexp_finalize (GObject *object)
g_object_unref (priv->search_sexp);
g_free (priv->text);
- g_free (priv->search_context);
g_rec_mutex_clear (&priv->search_context_lock);
/* Chain up to parent's finalize() method. */
@@ -1168,7 +1165,6 @@ static void
e_cal_backend_sexp_init (ECalBackendSExp *sexp)
{
sexp->priv = e_cal_backend_sexp_get_instance_private (sexp);
- sexp->priv->search_context = g_new (SearchContext, 1);
g_rec_mutex_init (&sexp->priv->search_context_lock);
}
@@ -1230,13 +1226,13 @@ e_cal_backend_sexp_new (const gchar *text)
sexp->priv->search_sexp, 0,
symbols[ii].name,
(ESExpIFunc *) symbols[ii].func,
- sexp->priv->search_context);
+ &(sexp->priv->search_context));
} else {
e_sexp_add_function (
sexp->priv->search_sexp, 0,
symbols[ii].name,
symbols[ii].func,
- sexp->priv->search_context);
+ &(sexp->priv->search_context));
}
}
@@ -1248,7 +1244,7 @@ e_cal_backend_sexp_new (const gchar *text)
}
if (sexp != NULL) {
- SearchContext *ctx = sexp->priv->search_context;
+ SearchContext *ctx = &(sexp->priv->search_context);
ctx->expr_range_set = e_sexp_evaluate_occur_times (
sexp->priv->search_sexp,
@@ -1299,15 +1295,15 @@ e_cal_backend_sexp_match_comp (ECalBackendSExp *sexp,
e_cal_backend_sexp_lock (sexp);
- sexp->priv->search_context->comp = g_object_ref (comp);
- sexp->priv->search_context->cache = g_object_ref (cache);
+ sexp->priv->search_context.comp = g_object_ref (comp);
+ sexp->priv->search_context.cache = g_object_ref (cache);
r = e_sexp_eval (sexp->priv->search_sexp);
retval = (r && r->type == ESEXP_RES_BOOL && r->value.boolean);
- g_object_unref (sexp->priv->search_context->comp);
- g_object_unref (sexp->priv->search_context->cache);
+ g_object_unref (sexp->priv->search_context.comp);
+ g_object_unref (sexp->priv->search_context.cache);
e_sexp_result_free (sexp->priv->search_sexp, r);
@@ -1661,11 +1657,11 @@ e_cal_backend_sexp_evaluate_occur_times (ECalBackendSExp *sexp,
g_return_val_if_fail (start != NULL, FALSE);
g_return_val_if_fail (end != NULL, FALSE);
- if (!sexp->priv->search_context->expr_range_set)
+ if (!sexp->priv->search_context.expr_range_set)
return FALSE;
- *start = sexp->priv->search_context->expr_range_start;
- *end = sexp->priv->search_context->expr_range_end;
+ *start = sexp->priv->search_context.expr_range_start;
+ *end = sexp->priv->search_context.expr_range_end;
return TRUE;
}
diff --git a/src/calendar/libedata-cal/e-cal-cache.c b/src/calendar/libedata-cal/e-cal-cache.c
index b2f95ebf3..5aaa51e35 100644
--- a/src/calendar/libedata-cal/e-cal-cache.c
+++ b/src/calendar/libedata-cal/e-cal-cache.c
@@ -127,7 +127,7 @@ e_cal_cache_offline_change_new (const gchar *uid,
g_return_val_if_fail (uid != NULL, NULL);
- change = g_new0 (ECalCacheOfflineChange, 1);
+ change = g_slice_new0 (ECalCacheOfflineChange);
change->uid = g_strdup (uid);
change->rid = g_strdup (rid);
change->revision = g_strdup (revision);
@@ -175,7 +175,7 @@ e_cal_cache_offline_change_free (gpointer change)
g_free (chng->rid);
g_free (chng->revision);
g_free (chng->object);
- g_free (chng);
+ g_slice_free (ECalCacheOfflineChange, chng);
}
}
@@ -204,7 +204,7 @@ e_cal_cache_search_data_new (const gchar *uid,
g_return_val_if_fail (uid != NULL, NULL);
g_return_val_if_fail (object != NULL, NULL);
- data = g_new0 (ECalCacheSearchData, 1);
+ data = g_slice_new0 (ECalCacheSearchData);
data->uid = g_strdup (uid);
data->rid = (rid && *rid) ? g_strdup (rid) : NULL;
data->object = g_strdup (object);
@@ -251,7 +251,7 @@ e_cal_cache_search_data_free (gpointer ptr)
g_free (data->rid);
g_free (data->object);
g_free (data->extra);
- g_free (data);
+ g_slice_free (ECalCacheSearchData, data);
}
}
@@ -1928,7 +1928,7 @@ timezone_migration_data_free (gpointer ptr)
if (tmd) {
g_clear_object (&tmd->zone);
- g_free (tmd);
+ g_slice_free (TimezoneMigrationData, tmd);
}
}
@@ -1991,7 +1991,7 @@ ecc_count_timezones_in_icalcomp_cb (ICalParameter *param,
zone = e_cal_util_copy_timezone (zone);
if (zone) {
- tmd = g_new0 (TimezoneMigrationData, 1);
+ tmd = g_slice_new0 (TimezoneMigrationData);
tmd->is_deref = !ctd->is_inc;
tmd->refs = 1;
tmd->zone = zone;
@@ -2101,7 +2101,7 @@ e_cal_cache_fill_tmd_cb (ECache *cache,
if (zone) {
TimezoneMigrationData *tmd;
- tmd = g_new0 (TimezoneMigrationData, 1);
+ tmd = g_slice_new0 (TimezoneMigrationData);
tmd->zone = zone;
tmd->refs = 0;
diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
index 977eb5113..7501f2a43 100644
--- a/src/calendar/libedata-cal/e-cal-meta-backend.c
+++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
@@ -165,7 +165,7 @@ e_cal_meta_backend_info_new (const gchar *uid,
g_return_val_if_fail (uid != NULL, NULL);
- info = g_new0 (ECalMetaBackendInfo, 1);
+ info = g_slice_new0 (ECalMetaBackendInfo);
info->uid = g_strdup (uid);
info->revision = g_strdup (revision);
info->object = g_strdup (object);
@@ -212,7 +212,7 @@ e_cal_meta_backend_info_free (gpointer ptr)
g_free (info->revision);
g_free (info->object);
g_free (info->extra);
- g_free (info);
+ g_slice_free (ECalMetaBackendInfo, info);
}
}
diff --git a/src/camel/camel-db.c b/src/camel/camel-db.c
index 3e550944b..5bf863b1e 100644
--- a/src/camel/camel-db.c
+++ b/src/camel/camel-db.c
@@ -102,7 +102,7 @@ sync_request_thread_cb (gpointer task_data,
g_mutex_unlock (&sync_data->cFile->pending_syncs_lock);
done = sync_data->done;
- g_free (sync_data);
+ g_slice_free (struct SyncRequestData, sync_data);
if (done != NULL) {
g_mutex_lock (&done->mutex);
@@ -139,7 +139,7 @@ sync_push_request (CamelSqlite3File *cFile,
done->is_set = FALSE;
}
- data = g_new0 (struct SyncRequestData, 1);
+ data = g_slice_new0 (struct SyncRequestData);
data->cFile = cFile;
data->flags = cFile->flags;
data->done = done;
diff --git a/src/camel/camel-filter-driver.c b/src/camel/camel-filter-driver.c
index 56d8b5e99..77cb361b5 100644
--- a/src/camel/camel-filter-driver.c
+++ b/src/camel/camel-filter-driver.c
@@ -186,6 +186,12 @@ typedef struct _MessageTransferData {
GPtrArray *move_uids;
} MessageTransferData;
+static MessageTransferData *
+message_transfer_data_new (void)
+{
+ return g_slice_new0 (MessageTransferData);
+}
+
static void
message_transfer_data_free (gpointer ptr)
{
@@ -196,7 +202,7 @@ message_transfer_data_free (gpointer ptr)
g_ptr_array_free (mtd->copy_uids, TRUE);
if (mtd->move_uids)
g_ptr_array_free (mtd->move_uids, TRUE);
- g_free (mtd);
+ g_slice_free (MessageTransferData, mtd);
}
}
@@ -219,7 +225,7 @@ filter_driver_add_to_transfers (CamelFilterDriver *driver,
mtd = g_hash_table_lookup (driver->priv->transfers, destination);
if (!mtd) {
- mtd = g_new0 (MessageTransferData, 1);
+ mtd = message_transfer_data_new ();
g_hash_table_insert (driver->priv->transfers, g_object_ref (destination), mtd);
}
diff --git a/src/camel/camel-folder-summary.c b/src/camel/camel-folder-summary.c
index c981228bd..0b33bb5ec 100644
--- a/src/camel/camel-folder-summary.c
+++ b/src/camel/camel-folder-summary.c
@@ -1599,7 +1599,7 @@ cfs_free_weakref (gpointer ptr)
if (weakref) {
g_weak_ref_set (weakref, NULL);
g_weak_ref_clear (weakref);
- g_free (weakref);
+ g_slice_free (GWeakRef, weakref);
}
}
@@ -1694,7 +1694,7 @@ cfs_schedule_info_release_timer (CamelFolderSummary *summary)
if (can_do) {
GWeakRef *weakref;
- weakref = g_new0 (GWeakRef, 1);
+ weakref = g_slice_new0 (GWeakRef);
g_weak_ref_init (weakref, summary);
summary->priv->timeout_handle = g_timeout_add_seconds_full (
diff --git a/src/camel/camel-folder.c b/src/camel/camel-folder.c
index eb393827d..a0e7c5c9e 100644
--- a/src/camel/camel-folder.c
+++ b/src/camel/camel-folder.c
@@ -4263,7 +4263,7 @@ uid_index_pair_free (gpointer ptr)
g_ptr_array_unref (uip->uids);
if (uip->indexes)
g_ptr_array_unref (uip->indexes);
- g_free (uip);
+ g_slice_free (UidIndexPair, uip);
}
}
@@ -4358,7 +4358,7 @@ camel_folder_transfer_messages_to_sync (CamelFolder *source,
uip = g_hash_table_lookup (todo, folder);
if (!uip) {
- uip = g_new0 (UidIndexPair, 1);
+ uip = g_slice_new0 (UidIndexPair);
uip->uids = g_ptr_array_new_with_free_func ((GDestroyNotify)
camel_pstring_free);
if (transferred_uids)
uip->indexes = g_ptr_array_new ();
diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
index 13ae071a5..5e2528bdf 100644
--- a/src/camel/camel-gpg-context.c
+++ b/src/camel/camel-gpg-context.c
@@ -105,7 +105,7 @@ gpg_recipients_data_free (gpointer ptr)
if (rd) {
g_free (rd->keyid);
g_free (rd->known_key_data);
- g_free (rd);
+ g_slice_free (GpgRecipientsData, rd);
}
}
@@ -212,7 +212,7 @@ gpg_ctx_new (CamelCipherContext *context,
session = camel_cipher_context_get_session (context);
- gpg = g_new (struct _GpgCtx, 1);
+ gpg = g_slice_new0 (struct _GpgCtx);
gpg->mode = GPG_CTX_MODE_SIGN;
gpg->session = g_object_ref (session);
gpg->cancellable = cancellable;
@@ -382,7 +382,7 @@ gpg_ctx_add_recipient (struct _GpgCtx *gpg,
safe_keyid = g_strdup (keyid);
}
- rd = g_new0 (GpgRecipientsData, 1);
+ rd = g_slice_new0 (GpgRecipientsData);
rd->keyid = safe_keyid;
rd->known_key_data = g_strdup (known_key_data);
@@ -548,7 +548,7 @@ gpg_ctx_free (struct _GpgCtx *gpg)
if (gpg->decrypt_extra_text)
g_string_free (gpg->decrypt_extra_text, TRUE);
- g_free (gpg);
+ g_slice_free (struct _GpgCtx, gpg);
}
static const gchar *
diff --git a/src/camel/camel-trie.c b/src/camel/camel-trie.c
index e2f4c33ad..74bf233fb 100644
--- a/src/camel/camel-trie.c
+++ b/src/camel/camel-trie.c
@@ -116,7 +116,7 @@ camel_trie_new (gboolean icase)
{
CamelTrie *trie;
- trie = g_new (CamelTrie, 1);
+ trie = g_slice_new (CamelTrie);
trie->root.next = NULL;
trie->root.fail = NULL;
trie->root.match = NULL;
@@ -145,7 +145,7 @@ camel_trie_free (CamelTrie *trie)
g_ptr_array_free (trie->fail_states, TRUE);
camel_memchunk_destroy (trie->match_chunks);
camel_memchunk_destroy (trie->state_chunks);
- g_free (trie);
+ g_slice_free (CamelTrie, trie);
}
static struct _trie_match *
diff --git a/src/camel/camel-uid-cache.c b/src/camel/camel-uid-cache.c
index 23237f53a..6e4167f46 100644
--- a/src/camel/camel-uid-cache.c
+++ b/src/camel/camel-uid-cache.c
@@ -83,7 +83,7 @@ camel_uid_cache_new (const gchar *filename)
close (fd);
- cache = g_new (CamelUIDCache, 1);
+ cache = g_slice_new0 (CamelUIDCache);
cache->uids = g_hash_table_new (g_str_hash, g_str_equal);
cache->filename = g_strdup (filename);
cache->level = 1;
@@ -244,7 +244,7 @@ camel_uid_cache_destroy (CamelUIDCache *cache)
g_hash_table_foreach (cache->uids, free_uid, NULL);
g_hash_table_destroy (cache->uids);
g_free (cache->filename);
- g_free (cache);
+ g_slice_free (CamelUIDCache, cache);
}
/**
diff --git a/src/camel/camel-url-scanner.c b/src/camel/camel-url-scanner.c
index 1b3dfb7d2..f18536053 100644
--- a/src/camel/camel-url-scanner.c
+++ b/src/camel/camel-url-scanner.c
@@ -42,7 +42,7 @@ camel_url_scanner_new (void)
{
CamelUrlScanner *scanner;
- scanner = g_new (CamelUrlScanner, 1);
+ scanner = g_slice_new0 (CamelUrlScanner);
scanner->patterns = g_ptr_array_new ();
scanner->trie = camel_trie_new (TRUE);
@@ -62,7 +62,7 @@ camel_url_scanner_free (CamelUrlScanner *scanner)
g_ptr_array_free (scanner->patterns, TRUE);
camel_trie_free (scanner->trie);
- g_free (scanner);
+ g_slice_free (CamelUrlScanner, scanner);
}
/**
diff --git a/src/camel/camel-vee-data-cache.c b/src/camel/camel-vee-data-cache.c
index 60b96bcb3..ae488f625 100644
--- a/src/camel/camel-vee-data-cache.c
+++ b/src/camel/camel-vee-data-cache.c
@@ -342,6 +342,19 @@ typedef struct _VeeData {
const gchar *orig_message_uid;
} VeeData;
+static VeeData *
+vee_data_new (void)
+{
+ return g_slice_new0 (VeeData);
+}
+
+static void
+vee_data_free (gpointer ptr)
+{
+ if (ptr)
+ g_slice_free (VeeData, ptr);
+}
+
static guint
vee_data_hash (gconstpointer ptr)
{
@@ -428,7 +441,7 @@ camel_vee_data_cache_init (CamelVeeDataCache *data_cache)
data_cache->priv->subfolder_hash = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL,
g_object_unref);
g_mutex_init (&data_cache->priv->mi_mutex);
- data_cache->priv->orig_message_uid_hash = g_hash_table_new_full (vee_data_hash, vee_data_equal,
g_free, g_object_unref);
+ data_cache->priv->orig_message_uid_hash = g_hash_table_new_full (vee_data_hash, vee_data_equal,
vee_data_free, g_object_unref);
data_cache->priv->vee_message_uid_hash = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL,
NULL);
}
@@ -498,7 +511,7 @@ camel_vee_data_cache_add_subfolder (CamelVeeDataCache *data_cache,
mi_data = camel_vee_message_info_data_new (sf_data,
vdata.orig_message_uid);
- hash_data = g_new0 (VeeData, 1);
+ hash_data = vee_data_new ();
hash_data->folder = subfolder;
hash_data->orig_message_uid =
camel_vee_message_info_data_get_orig_message_uid (mi_data);
@@ -705,7 +718,7 @@ camel_vee_data_cache_get_message_info_data (CamelVeeDataCache *data_cache,
/* res holds the reference now */
g_object_unref (sf_data);
- hash_data = g_new0 (VeeData, 1);
+ hash_data = vee_data_new ();
hash_data->folder = folder;
hash_data->orig_message_uid = camel_vee_message_info_data_get_orig_message_uid (res);
diff --git a/src/camel/camel-weak-ref-group.c b/src/camel/camel-weak-ref-group.c
index 3cd8e199b..0194d1c5d 100644
--- a/src/camel/camel-weak-ref-group.c
+++ b/src/camel/camel-weak-ref-group.c
@@ -52,7 +52,7 @@ object_data_new (gpointer object)
{
ObjectData *od;
- od = g_new (ObjectData, 1);
+ od = g_slice_new (ObjectData);
od->use_count = 1;
g_weak_ref_init (&od->weakref, object);
@@ -69,7 +69,7 @@ object_data_free (gpointer ptr)
g_warn_if_fail (od->use_count == 0);
g_weak_ref_set (&od->weakref, NULL);
g_weak_ref_clear (&od->weakref);
- g_free (od);
+ g_slice_free (ObjectData, od);
}
}
@@ -86,7 +86,7 @@ camel_weak_ref_group_new (void)
{
CamelWeakRefGroup *wrg;
- wrg = g_new (CamelWeakRefGroup, 1);
+ wrg = g_slice_new (CamelWeakRefGroup);
wrg->ref_count = 1;
wrg->object = NULL;
@@ -140,7 +140,7 @@ camel_weak_ref_group_unref (CamelWeakRefGroup *group)
if (!group->ref_count) {
camel_weak_ref_group_set (group, NULL);
- g_free (group);
+ g_slice_free (CamelWeakRefGroup, group);
}
}
diff --git a/src/camel/providers/imapx/camel-imapx-conn-manager.c
b/src/camel/providers/imapx/camel-imapx-conn-manager.c
index c14a0d5e1..1d8a48433 100644
--- a/src/camel/providers/imapx/camel-imapx-conn-manager.c
+++ b/src/camel/providers/imapx/camel-imapx-conn-manager.c
@@ -118,7 +118,7 @@ mailbox_refresh_data_free (MailboxRefreshData *data)
if (data) {
g_clear_object (&data->conn_man);
g_clear_object (&data->mailbox);
- g_free (data);
+ g_slice_free (MailboxRefreshData, data);
}
}
@@ -167,7 +167,7 @@ imapx_conn_manager_refresh_mailbox_cb (CamelIMAPXServer *is,
}
g_mutex_unlock (&conn_man->priv->idle_refresh_lock);
- data = g_new0 (MailboxRefreshData, 1);
+ data = g_slice_new0 (MailboxRefreshData);
data->conn_man = g_object_ref (conn_man);
data->mailbox = g_object_ref (mailbox);
@@ -1435,7 +1435,7 @@ list_job_data_free (gpointer ptr)
if (job_data) {
g_free (job_data->pattern);
- g_free (job_data);
+ g_slice_free (struct ListJobData, job_data);
}
}
@@ -1497,7 +1497,7 @@ camel_imapx_conn_manager_list_sync (CamelIMAPXConnManager *conn_man,
imapx_conn_manager_list_matches,
NULL);
- job_data = g_new0 (struct ListJobData, 1);
+ job_data = g_slice_new0 (struct ListJobData);
job_data->pattern = g_strdup (pattern);
job_data->flags = flags;
@@ -2026,8 +2026,8 @@ get_message_job_data_free (gpointer ptr)
if (job_data) {
g_clear_object (&job_data->summary);
g_clear_object (&job_data->message_cache);
- g_free (job_data->message_uid);
- g_free (job_data);
+ camel_pstring_free (job_data->message_uid);
+ g_slice_free (struct GetMessageJobData, job_data);
}
}
@@ -2123,10 +2123,10 @@ camel_imapx_conn_manager_get_message_sync (CamelIMAPXConnManager *conn_man,
imapx_conn_manager_get_message_matches,
imapx_conn_manager_get_message_copy_result);
- job_data = g_new0 (struct GetMessageJobData, 1);
+ job_data = g_slice_new0 (struct GetMessageJobData);
job_data->summary = g_object_ref (summary);
job_data->message_cache = g_object_ref (message_cache);
- job_data->message_uid = g_strdup (message_uid);
+ job_data->message_uid = (gchar *) camel_pstring_strdup (message_uid);
camel_imapx_job_set_user_data (job, job_data, get_message_job_data_free);
@@ -2157,7 +2157,7 @@ copy_message_job_data_free (gpointer ptr)
if (job_data) {
g_clear_object (&job_data->destination);
g_ptr_array_free (job_data->uids, TRUE);
- g_free (job_data);
+ g_slice_free (struct CopyMessageJobData, job_data);
}
}
@@ -2221,7 +2221,7 @@ imapx_conn_manager_copy_message_sync (CamelIMAPXConnManager *conn_man,
imapx_conn_manager_nothing_matches,
NULL);
- job_data = g_new0 (struct CopyMessageJobData, 1);
+ job_data = g_slice_new0 (struct CopyMessageJobData);
job_data->destination = g_object_ref (destination);
job_data->uids = g_ptr_array_new_full (uids->len, (GDestroyNotify) camel_pstring_free);
job_data->delete_originals = delete_originals;
@@ -2286,7 +2286,7 @@ append_message_job_data_free (gpointer ptr)
g_clear_object (&job_data->summary);
g_clear_object (&job_data->message_cache);
g_clear_object (&job_data->message);
- g_free (job_data);
+ g_slice_free (struct AppendMessageJobData, job_data);
}
}
@@ -2347,7 +2347,7 @@ camel_imapx_conn_manager_append_message_sync (CamelIMAPXConnManager *conn_man,
imapx_conn_manager_nothing_matches,
NULL);
- job_data = g_new0 (struct AppendMessageJobData, 1);
+ job_data = g_slice_new0 (struct AppendMessageJobData);
job_data->summary = g_object_ref (summary);
job_data->message_cache = g_object_ref (message_cache);
job_data->message = g_object_ref (message);
@@ -2426,10 +2426,10 @@ camel_imapx_conn_manager_sync_message_sync (CamelIMAPXConnManager *conn_man,
imapx_conn_manager_get_message_matches,
NULL);
- job_data = g_new0 (struct GetMessageJobData, 1);
+ job_data = g_slice_new0 (struct GetMessageJobData);
job_data->summary = g_object_ref (summary);
job_data->message_cache = g_object_ref (message_cache);
- job_data->message_uid = g_strdup (message_uid);
+ job_data->message_uid = (gchar *) camel_pstring_strdup (message_uid);
camel_imapx_job_set_user_data (job, job_data, get_message_job_data_free);
@@ -2792,7 +2792,7 @@ uid_search_job_data_free (gpointer ptr)
g_free (job_data->criteria_prefix);
g_free (job_data->search_key);
g_strfreev (job_data->words);
- g_free (job_data);
+ g_slice_free (struct UidSearchJobData, job_data);
}
}
@@ -2867,7 +2867,7 @@ camel_imapx_conn_manager_uid_search_sync (CamelIMAPXConnManager *conn_man,
g_return_val_if_fail (CAMEL_IS_IMAPX_CONN_MANAGER (conn_man), NULL);
- job_data = g_new0 (struct UidSearchJobData, 1);
+ job_data = g_slice_new0 (struct UidSearchJobData);
job_data->criteria_prefix = g_strdup (criteria_prefix);
job_data->search_key = g_strdup (search_key);
job_data->words = imapx_copy_strv (words);
diff --git a/src/camel/providers/imapx/camel-imapx-folder.c b/src/camel/providers/imapx/camel-imapx-folder.c
index 40b19f7b6..0df26f1e9 100644
--- a/src/camel/providers/imapx/camel-imapx-folder.c
+++ b/src/camel/providers/imapx/camel-imapx-folder.c
@@ -945,7 +945,7 @@ remove_cache_files_free (gpointer ptr)
if (rcf) {
g_clear_object (&rcf->imapx_folder);
g_slist_free_full (rcf->uids, (GDestroyNotify) camel_pstring_free);
- g_free (rcf);
+ g_slice_free (RemoveCacheFiles, rcf);
}
}
@@ -1021,7 +1021,7 @@ imapx_folder_changed (CamelFolder *folder,
RemoveCacheFiles *rcf;
gchar *description;
- rcf = g_new0 (RemoveCacheFiles, 1);
+ rcf = g_slice_new0 (RemoveCacheFiles);
rcf->imapx_folder = g_object_ref (imapx_folder);
rcf->uids = removed_uids;
diff --git a/src/camel/providers/imapx/camel-imapx-job.c b/src/camel/providers/imapx/camel-imapx-job.c
index ed9c45ade..99bb616b4 100644
--- a/src/camel/providers/imapx/camel-imapx-job.c
+++ b/src/camel/providers/imapx/camel-imapx-job.c
@@ -183,7 +183,7 @@ camel_imapx_job_new (guint32 job_kind,
g_return_val_if_fail (run_sync != NULL, NULL);
- job = g_new0 (CamelIMAPXJob, 1);
+ job = g_slice_new0 (CamelIMAPXJob);
job->ref_count = 1;
job->job_kind = job_kind;
job->mailbox = mailbox ? g_object_ref (mailbox) : NULL;
@@ -230,7 +230,7 @@ camel_imapx_job_unref (CamelIMAPXJob *job)
job->ref_count = 0xdeadbeef;
- g_free (job);
+ g_slice_free (CamelIMAPXJob, job);
}
}
diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
index e51529eb6..cf341a917 100644
--- a/src/camel/providers/imapx/camel-imapx-server.c
+++ b/src/camel/providers/imapx/camel-imapx-server.c
@@ -376,7 +376,7 @@ fetch_changes_info_free (gpointer ptr)
if (nfo) {
camel_named_flags_free (nfo->server_user_flags);
- g_free (nfo);
+ g_slice_free (FetchChangesInfo, nfo);
}
}
@@ -1200,7 +1200,7 @@ imapx_untagged_fetch (CamelIMAPXServer *is,
nfo = g_hash_table_lookup (is->priv->fetch_changes_infos, finfo->uid);
if (!nfo) {
- nfo = g_new0 (FetchChangesInfo, 1);
+ nfo = g_slice_new0 (FetchChangesInfo);
g_hash_table_insert (is->priv->fetch_changes_infos, (gpointer)
camel_pstring_strdup (finfo->uid), nfo);
}
@@ -2159,7 +2159,7 @@ imapx_untagged (CamelIMAPXServer *is,
* we will need to protect this data structure with locks
*/
g_return_val_if_fail (is->priv->context == NULL, FALSE);
- is->priv->context = g_new0 (CamelIMAPXServerUntaggedContext, 1);
+ is->priv->context = g_slice_new0 (CamelIMAPXServerUntaggedContext);
settings = camel_imapx_server_ref_settings (is);
fetch_order = camel_imapx_settings_get_fetch_order (settings);
@@ -2248,7 +2248,7 @@ imapx_untagged (CamelIMAPXServer *is,
CAMEL_IMAPX_INPUT_STREAM (input_stream), cancellable, error);
exit:
- g_free (is->priv->context);
+ g_slice_free (CamelIMAPXServerUntaggedContext, is->priv->context);
is->priv->context = NULL;
return success;
@@ -3613,7 +3613,7 @@ imapx_server_finalize (GObject *object)
camel_folder_change_info_free (is->priv->changes);
imapx_free_status (is->priv->copyuid_status);
- g_free (is->priv->context);
+ g_slice_free (CamelIMAPXServerUntaggedContext, is->priv->context);
g_hash_table_destroy (is->priv->untagged_handlers);
if (is->priv->inactivity_timeout != NULL)
@@ -6850,6 +6850,18 @@ typedef struct _IdleThreadData {
gint idle_stamp;
} IdleThreadData;
+static void
+idle_thread_data_free (gpointer ptr)
+{
+ IdleThreadData *itd = ptr;
+
+ if (itd) {
+ g_clear_object (&itd->is);
+ g_clear_object (&itd->idle_cancellable);
+ g_slice_free (IdleThreadData, itd);
+ }
+}
+
static gpointer
imapx_server_idle_thread (gpointer user_data)
{
@@ -6880,9 +6892,7 @@ imapx_server_idle_thread (gpointer user_data)
g_cond_broadcast (&is->priv->idle_cond);
g_mutex_unlock (&is->priv->idle_lock);
- g_clear_object (&itd->is);
- g_clear_object (&itd->idle_cancellable);
- g_free (itd);
+ idle_thread_data_free (itd);
return NULL;
}
@@ -6963,9 +6973,7 @@ imapx_server_idle_thread (gpointer user_data)
g_clear_object (&mailbox);
g_clear_error (&local_error);
- g_clear_object (&itd->is);
- g_clear_object (&itd->idle_cancellable);
- g_free (itd);
+ idle_thread_data_free (itd);
return NULL;
}
@@ -6991,7 +6999,7 @@ imapx_server_run_idle_thread_cb (gpointer user_data)
GThread *thread;
GError *local_error = NULL;
- itd = g_new0 (IdleThreadData, 1);
+ itd = g_slice_new0 (IdleThreadData);
itd->is = g_object_ref (is);
itd->idle_cancellable = g_object_ref (is->priv->idle_cancellable);
itd->idle_stamp = is->priv->idle_stamp;
@@ -7002,9 +7010,7 @@ imapx_server_run_idle_thread_cb (gpointer user_data)
} else {
g_warning ("%s: Failed to create IDLE thread: %s", G_STRFUNC, local_error ?
local_error->message : "Unknown error");
- g_clear_object (&itd->is);
- g_clear_object (&itd->idle_cancellable);
- g_free (itd);
+ idle_thread_data_free (itd);
}
g_clear_error (&local_error);
diff --git a/src/camel/providers/local/camel-mbox-store.c b/src/camel/providers/local/camel-mbox-store.c
index 389c2b54a..4fe4f3b9d 100644
--- a/src/camel/providers/local/camel-mbox-store.c
+++ b/src/camel/providers/local/camel-mbox-store.c
@@ -71,12 +71,24 @@ inode_equal (gconstpointer a,
return v1->inode == v2->inode && v1->dnode == v2->dnode;
}
+static struct _inode *
+inode_new (const struct _inode *src)
+{
+ struct _inode *inode;
+
+ inode = g_slice_new0 (struct _inode);
+ if (src) {
+ inode->dnode = src->dnode;
+ inode->inode = src->inode;
+ }
+
+ return inode;
+}
+
static void
-inode_free (gpointer k,
- gpointer v,
- gpointer d)
+inode_free (gpointer ptr)
{
- g_free (k);
+ g_slice_free (struct _inode, ptr);
}
static gboolean
@@ -252,9 +264,8 @@ scan_dir (CamelStore *store,
if (g_hash_table_lookup (visited, &in) == NULL) {
#ifndef G_OS_WIN32
- struct _inode *inew = g_new (struct _inode, 1);
+ struct _inode *inew = inode_new (&in);
- *inew = in;
g_hash_table_insert (visited, inew, inew);
#endif
if ((fi->child = scan_dir (store, visited, fi, path, fi->full_name, flags,
error)))
@@ -468,16 +479,15 @@ mbox_store_get_folder_info_sync (CamelStore *store,
return NULL;
}
- visited = g_hash_table_new (inode_hash, inode_equal);
+ visited = g_hash_table_new_full (inode_hash, inode_equal, inode_free, NULL);
#ifndef G_OS_WIN32
- inode = g_malloc0 (sizeof (*inode));
+ inode = inode_new (NULL);
inode->dnode = st.st_dev;
inode->inode = st.st_ino;
g_hash_table_insert (visited, inode, inode);
#endif
fi = scan_dir (store, visited, NULL, path, NULL, flags, error);
- g_hash_table_foreach (visited, inode_free, NULL);
g_hash_table_destroy (visited);
g_free (path);
@@ -496,7 +506,7 @@ mbox_store_get_folder_info_sync (CamelStore *store,
g_free (test_if_subdir);
}
- visited = g_hash_table_new (inode_hash, inode_equal);
+ visited = g_hash_table_new_full (inode_hash, inode_equal, inode_free, NULL);
basename = g_path_get_basename (top);
@@ -522,7 +532,6 @@ mbox_store_get_folder_info_sync (CamelStore *store,
g_free (subdir);
- g_hash_table_foreach (visited, inode_free, NULL);
g_hash_table_destroy (visited);
g_free (path);
diff --git a/src/libebackend/e-backend.c b/src/libebackend/e-backend.c
index 3981594b2..a29725921 100644
--- a/src/libebackend/e-backend.c
+++ b/src/libebackend/e-backend.c
@@ -86,6 +86,17 @@ typedef struct _CanReachData {
GCancellable *cancellable;
} CanReachData;
+static void
+can_reach_data_free (gpointer ptr)
+{
+ CanReachData *crd = ptr;
+
+ if (crd) {
+ g_clear_object (&crd->backend);
+ g_slice_free (CanReachData, crd);
+ }
+}
+
static void
backend_network_monitor_can_reach_cb (GObject *source_object,
GAsyncResult *result,
@@ -113,8 +124,7 @@ backend_network_monitor_can_reach_cb (GObject *source_object,
if (G_IS_IO_ERROR (error, G_IO_ERROR_CANCELLED) ||
host_is_reachable == e_backend_get_online (crd->backend)) {
g_clear_error (&error);
- g_object_unref (crd->backend);
- g_free (crd);
+ can_reach_data_free (crd);
return;
}
@@ -129,8 +139,7 @@ backend_network_monitor_can_reach_cb (GObject *source_object,
e_source_set_connection_status (source, E_SOURCE_CONNECTION_STATUS_DISCONNECTED);
}
- g_object_unref (crd->backend);
- g_free (crd);
+ can_reach_data_free (crd);
}
static GSocketConnectable *
@@ -199,7 +208,7 @@ backend_update_online_state_timeout_cb (gpointer user_data)
cancellable = g_cancellable_new ();
- crd = g_new0 (CanReachData, 1);
+ crd = g_slice_new0 (CanReachData);
crd->backend = g_object_ref (backend);
crd->cancellable = cancellable;
@@ -316,7 +325,7 @@ authenticate_thread_data_new (EBackend *backend,
{
AuthenticateThreadData *data;
- data = g_new0 (AuthenticateThreadData, 1);
+ data = g_slice_new0 (AuthenticateThreadData);
data->backend = g_object_ref (backend);
data->cancellable = g_object_ref (cancellable);
data->credentials = credentials ? e_named_parameters_new_clone (credentials) : e_named_parameters_new
();
@@ -340,7 +349,7 @@ authenticate_thread_data_free (AuthenticateThreadData *data)
g_clear_object (&data->backend);
g_clear_object (&data->cancellable);
e_named_parameters_free (data->credentials);
- g_free (data);
+ g_slice_free (AuthenticateThreadData, data);
}
}
@@ -1113,7 +1122,7 @@ credentials_required_data_free (gpointer ptr)
if (data) {
g_free (data->certificate_pem);
g_clear_error (&data->op_error);
- g_free (data);
+ g_slice_free (CredentialsRequiredData, data);
}
}
@@ -1173,7 +1182,7 @@ e_backend_credentials_required (EBackend *backend,
g_return_if_fail (E_IS_BACKEND (backend));
- data = g_new0 (CredentialsRequiredData, 1);
+ data = g_slice_new0 (CredentialsRequiredData);
data->reason = reason;
data->certificate_pem = g_strdup (certificate_pem);
data->certificate_errors = certificate_errors;
diff --git a/src/libebackend/e-cache.c b/src/libebackend/e-cache.c
index 66e581428..48a679358 100644
--- a/src/libebackend/e-cache.c
+++ b/src/libebackend/e-cache.c
@@ -384,7 +384,7 @@ e_cache_offline_change_new (const gchar *uid,
g_return_val_if_fail (uid != NULL, NULL);
- change = g_new0 (ECacheOfflineChange, 1);
+ change = g_slice_new0 (ECacheOfflineChange);
change->uid = g_strdup (uid);
change->revision = g_strdup (revision);
change->object = g_strdup (object);
@@ -430,7 +430,7 @@ e_cache_offline_change_free (gpointer change)
g_free (chng->uid);
g_free (chng->revision);
g_free (chng->object);
- g_free (chng);
+ g_slice_free (ECacheOfflineChange, chng);
}
}
@@ -455,7 +455,7 @@ e_cache_column_info_new (const gchar *name,
g_return_val_if_fail (name != NULL, NULL);
g_return_val_if_fail (type != NULL, NULL);
- info = g_new0 (ECacheColumnInfo, 1);
+ info = g_slice_new0 (ECacheColumnInfo);
info->name = g_strdup (name);
info->type = g_strdup (type);
info->index_name = g_strdup (index_name);
@@ -500,7 +500,7 @@ e_cache_column_info_free (gpointer info)
g_free (nfo->name);
g_free (nfo->type);
g_free (nfo->index_name);
- g_free (nfo);
+ g_slice_free (ECacheColumnInfo, nfo);
}
}
@@ -2024,7 +2024,7 @@ foreach_update_row_data_free (gpointer ptr)
g_free (fr->revision);
g_free (fr->object);
g_ptr_array_free (fr->column_values, TRUE);
- g_free (fr);
+ g_slice_free (struct ForeachUpdateRowData, fr);
}
}
@@ -2106,7 +2106,7 @@ e_cache_foreach_update_cb (ECache *cache,
g_ptr_array_add (cvalues, g_strdup (column_values[ii]));
}
- rd = g_new0 (struct ForeachUpdateRowData, 1);
+ rd = g_slice_new0 (struct ForeachUpdateRowData);
rd->uid = g_strdup (column_values[fu->uid_index]);
rd->revision = g_strdup (column_values[fu->revision_index]);
rd->object = g_strdup (column_values[fu->object_index]);
diff --git a/src/libebackend/e-data-factory.c b/src/libebackend/e-data-factory.c
index 428c4463d..7c4106a68 100644
--- a/src/libebackend/e-data-factory.c
+++ b/src/libebackend/e-data-factory.c
@@ -129,7 +129,7 @@ data_factory_spawn_subprocess_backend_thread_data_new (EDataFactory *data_factor
{
DataFactorySpawnSubprocessBackendThreadData *data;
- data = g_new0 (DataFactorySpawnSubprocessBackendThreadData, 1);
+ data = g_slice_new0 (DataFactorySpawnSubprocessBackendThreadData);
data->data_factory = g_object_ref (data_factory);
data->invocation = g_object_ref (invocation);
data->uid = g_strdup (uid);
@@ -149,7 +149,7 @@ data_factory_spawn_subprocess_backend_thread_data_free (DataFactorySpawnSubproce
g_free (data->extension_name);
g_free (data->subprocess_path);
- g_free (data);
+ g_slice_free (DataFactorySpawnSubprocessBackendThreadData, data);
}
}
@@ -168,7 +168,7 @@ data_factory_subprocess_helper_new (EDBusSubprocessBackend *proxy,
{
DataFactorySubprocessHelper *helper;
- helper = g_new0 (DataFactorySubprocessHelper, 1);
+ helper = g_slice_new0 (DataFactorySubprocessHelper);
helper->proxy = g_object_ref (proxy);
helper->factory_name = g_strdup (factory_name);
helper->bus_name = g_strdup (bus_name);
@@ -184,7 +184,7 @@ data_factory_subprocess_helper_free (DataFactorySubprocessHelper *helper)
g_free (helper->factory_name);
g_free (helper->bus_name);
- g_free (helper);
+ g_slice_free (DataFactorySubprocessHelper, helper);
}
}
@@ -199,7 +199,7 @@ opened_backend_data_new (EBackend *backend, /* assumes ownership of 'backend' */
{
OpenedBackendData *obd;
- obd = g_new0 (OpenedBackendData, 1);
+ obd = g_slice_new0 (OpenedBackendData);
obd->backend = backend;
obd->object_path = g_strdup (object_path);
@@ -214,7 +214,7 @@ opened_backend_data_free (gpointer ptr)
if (obd) {
g_clear_object (&obd->backend);
g_free (obd->object_path);
- g_free (obd);
+ g_slice_free (OpenedBackendData, obd);
}
}
@@ -289,7 +289,7 @@ data_factory_subprocess_data_new (EDataFactory *data_factory,
{
DataFactorySubprocessData *sd;
- sd = g_new0 (DataFactorySubprocessData, 1);
+ sd = g_slice_new0 (DataFactorySubprocessData);
sd->data_factory = g_object_ref (data_factory);
sd->invocation = g_object_ref (invocation);
sd->uid = g_strdup (uid);
@@ -319,7 +319,7 @@ data_factory_subprocess_data_free (DataFactorySubprocessData *sd)
g_free (sd->module_filename);
g_free (sd->subprocess_helpers_hash_key);
- g_free (sd);
+ g_slice_free (DataFactorySubprocessData, sd);
}
}
diff --git a/src/libebackend/e-server-side-source.c b/src/libebackend/e-server-side-source.c
index 97f9dd4c4..4ce73a6a9 100644
--- a/src/libebackend/e-server-side-source.c
+++ b/src/libebackend/e-server-side-source.c
@@ -243,7 +243,7 @@ reinvoke_credentials_required_data_free (gpointer ptr)
g_free (data->arg_certificate_errors);
g_free (data->arg_dbus_error_name);
g_free (data->arg_dbus_error_message);
- g_free (data);
+ g_slice_free (ReinvokeCredentialsRequiredData, data);
}
}
@@ -307,7 +307,7 @@ server_side_source_invoke_credentials_required_cb (EDBusSource *dbus_interface,
source->priv->pending_credentials_lookup = g_object_ref (cancellable);
g_mutex_unlock (&source->priv->pending_credentials_lookup_lock);
- data = g_new0 (ReinvokeCredentialsRequiredData, 1);
+ data = g_slice_new0 (ReinvokeCredentialsRequiredData);
data->source = g_object_ref (source);
data->arg_reason = g_strdup (arg_reason);
data->arg_certificate_pem = g_strdup (arg_certificate_pem);
diff --git a/src/libebackend/e-source-registry-server.c b/src/libebackend/e-source-registry-server.c
index 8c70ec4a1..69637aa15 100644
--- a/src/libebackend/e-source-registry-server.c
+++ b/src/libebackend/e-source-registry-server.c
@@ -472,7 +472,7 @@ file_event_data_new (GFile *file,
{
FileEventData *fed;
- fed = g_new0 (FileEventData, 1);
+ fed = g_slice_new0 (FileEventData);
fed->file = g_object_ref (file);
fed->event_type = event_type;
@@ -486,7 +486,7 @@ file_event_data_free (gpointer ptr)
if (fed) {
g_clear_object (&fed->file);
- g_free (fed);
+ g_slice_free (FileEventData, fed);
}
}
diff --git a/src/libebackend/e-sqlite3-vfs.c b/src/libebackend/e-sqlite3-vfs.c
index 579e36fe9..785ac3b4f 100644
--- a/src/libebackend/e-sqlite3-vfs.c
+++ b/src/libebackend/e-sqlite3-vfs.c
@@ -87,7 +87,7 @@ sync_request_thread_cb (gpointer task_data,
g_mutex_unlock (&sync_data->cFile->pending_syncs_lock);
sync_op = sync_data->sync_op;
- g_free (sync_data);
+ g_slice_free (struct SyncRequestData, sync_data);
if (sync_op)
e_flag_set (sync_op);
@@ -116,7 +116,7 @@ sync_push_request (ESqlite3File *cFile,
if (wait_for_finish)
sync_op = e_flag_new ();
- data = g_new0 (struct SyncRequestData, 1);
+ data = g_slice_new0 (struct SyncRequestData);
data->cFile = cFile;
data->flags = cFile->flags;
data->sync_op = sync_op;
diff --git a/src/libebackend/e-user-prompter-server.c b/src/libebackend/e-user-prompter-server.c
index ca959fb60..a0432f6c3 100644
--- a/src/libebackend/e-user-prompter-server.c
+++ b/src/libebackend/e-user-prompter-server.c
@@ -94,7 +94,7 @@ prompt_request_free (gpointer data)
g_free (pr->dialog_name);
e_named_parameters_free (pr->parameters);
- g_free (pr);
+ g_slice_free (PromptRequest, pr);
}
}
@@ -119,7 +119,7 @@ add_prompt (EUserPrompterServer *server,
server->priv->last_prompt_id++;
- pr = g_new0 (PromptRequest, 1);
+ pr = g_slice_new0 (PromptRequest);
pr->is_extension_prompt = is_extension_prompt;
pr->id = server->priv->last_prompt_id;
pr->type = g_strdup (type);
diff --git a/src/libebackend/e-user-prompter.c b/src/libebackend/e-user-prompter.c
index 34c7f142a..84d44fd55 100644
--- a/src/libebackend/e-user-prompter.c
+++ b/src/libebackend/e-user-prompter.c
@@ -110,7 +110,7 @@ prompter_async_data_free (PrompterAsyncData *async_data)
g_free (async_data->response_signal_name);
- g_free (async_data);
+ g_slice_free (PrompterAsyncData, async_data);
}
static void
@@ -363,7 +363,7 @@ e_user_prompter_prompt (EUserPrompter *prompter,
G_OBJECT (prompter), callback, user_data,
e_user_prompter_prompt);
- async_data = g_new0 (PrompterAsyncData, 1);
+ async_data = g_slice_new0 (PrompterAsyncData);
async_data->type = g_strdup (type);
async_data->title = g_strdup (title);
async_data->primary_text = g_strdup (primary_text);
@@ -525,7 +525,7 @@ e_user_prompter_extension_prompt (EUserPrompter *prompter,
G_OBJECT (prompter), callback, user_data,
e_user_prompter_extension_prompt);
- async_data = g_new0 (PrompterAsyncData, 1);
+ async_data = g_slice_new0 (PrompterAsyncData);
async_data->dialog_name = g_strdup (dialog_name);
if (in_parameters) {
async_data->in_parameters = e_named_parameters_new ();
diff --git a/src/libedataserver/e-credentials.c b/src/libedataserver/e-credentials.c
index 89c1cfd85..0b478d345 100644
--- a/src/libedataserver/e-credentials.c
+++ b/src/libedataserver/e-credentials.c
@@ -57,8 +57,8 @@ e_credentials_new (void)
{
ECredentials *credentials;
- credentials = g_new0 (ECredentials, 1);
- credentials->priv = g_new0 (ECredentialsPrivate, 1);
+ credentials = g_slice_new0 (ECredentials);
+ credentials->priv = g_slice_new0 (ECredentialsPrivate);
credentials->priv->keys = g_hash_table_new_full (g_str_hash, key_equal, g_free, (GDestroyNotify)
e_credentials_util_safe_free_string);
credentials->priv->peek_keys = g_hash_table_new_full (g_str_hash, key_equal, g_free, (GDestroyNotify)
e_credentials_util_safe_free_string);
@@ -194,8 +194,8 @@ e_credentials_free (ECredentials *credentials)
g_hash_table_destroy (credentials->priv->keys);
g_hash_table_destroy (credentials->priv->peek_keys);
- g_free (credentials->priv);
- g_free (credentials);
+ g_slice_free (ECredentialsPrivate, credentials->priv);
+ g_slice_free (ECredentials, credentials);
}
static void
diff --git a/src/libedataserver/e-operation-pool.c b/src/libedataserver/e-operation-pool.c
index 31f13bf09..dcc356dba 100644
--- a/src/libedataserver/e-operation-pool.c
+++ b/src/libedataserver/e-operation-pool.c
@@ -56,7 +56,7 @@ e_operation_pool_new (guint max_threads,
return NULL;
}
- pool = g_new0 (EOperationPool, 1);
+ pool = g_slice_new0 (EOperationPool);
pool->pool = thread_pool;
g_mutex_init (&pool->ops_lock);
pool->ops = g_hash_table_new (g_direct_hash, g_direct_equal);
@@ -84,7 +84,7 @@ e_operation_pool_free (EOperationPool *pool)
g_thread_pool_free (pool->pool, FALSE, FALSE);
g_mutex_clear (&pool->ops_lock);
g_hash_table_destroy (pool->ops);
- g_free (pool);
+ g_slice_free (EOperationPool, pool);
}
/**
diff --git a/src/libedataserver/e-proxy.c b/src/libedataserver/e-proxy.c
index 577657c5d..bcd07f941 100644
--- a/src/libedataserver/e-proxy.c
+++ b/src/libedataserver/e-proxy.c
@@ -109,15 +109,9 @@ static void
ep_free_proxy_host_addr (ProxyHostAddr *host)
{
if (host) {
- if (host->addr) {
- g_free (host->addr);
- host->addr = NULL;
- }
- if (host->mask) {
- g_free (host->mask);
- host->mask = NULL;
- }
- g_free (host);
+ g_clear_pointer (&host->addr, g_free);
+ g_clear_pointer (&host->mask, g_free);
+ g_slice_free (ProxyHostAddr, host);
}
}
@@ -551,7 +545,7 @@ ep_parse_ignore_host (gpointer data,
gint addr_len;
struct sockaddr * so_addr = NULL;
- host_addr = g_new0 (ProxyHostAddr, 1);
+ host_addr = g_slice_new0 (ProxyHostAddr);
so_addr = soup_address_get_sockaddr (addr, &addr_len);
diff --git a/src/libedataserver/e-source-credentials-provider.c
b/src/libedataserver/e-source-credentials-provider.c
index e3057aeba..739d4fd94 100644
--- a/src/libedataserver/e-source-credentials-provider.c
+++ b/src/libedataserver/e-source-credentials-provider.c
@@ -522,7 +522,7 @@ async_context_new (ESource *source,
{
AsyncContext *async_context;
- async_context = g_new0 (AsyncContext, 1);
+ async_context = g_slice_new0 (AsyncContext);
async_context->source = g_object_ref (source);
async_context->permanently = permanently;
if (credentials)
@@ -539,7 +539,7 @@ async_context_free (gpointer ptr)
if (async_context) {
g_clear_object (&async_context->source);
e_named_parameters_free (async_context->credentials);
- g_free (async_context);
+ g_slice_free (AsyncContext, async_context);
}
}
diff --git a/src/libedataserver/e-source.c b/src/libedataserver/e-source.c
index e7b8cff54..a77fc27f9 100644
--- a/src/libedataserver/e-source.c
+++ b/src/libedataserver/e-source.c
@@ -4626,7 +4626,7 @@ invoke_credentials_required_data_free (gpointer ptr)
if (data) {
g_free (data->certificate_pem);
g_clear_error (&data->op_error);
- g_free (data);
+ g_slice_free (InvokeCredentialsRequiredData, data);
}
}
@@ -4686,7 +4686,7 @@ e_source_invoke_credentials_required (ESource *source,
g_return_if_fail (E_IS_SOURCE (source));
- data = g_new0 (InvokeCredentialsRequiredData, 1);
+ data = g_slice_new0 (InvokeCredentialsRequiredData);
data->reason = reason;
data->certificate_pem = g_strdup (certificate_pem);
data->certificate_errors = certificate_errors;
@@ -5033,7 +5033,7 @@ source_get_last_credentials_required_arguments_thread (GTask *task,
InvokeCredentialsRequiredData *data;
GError *local_error = NULL;
- data = g_new0 (InvokeCredentialsRequiredData, 1);
+ data = g_slice_new0 (InvokeCredentialsRequiredData);
data->reason = E_SOURCE_CREDENTIALS_REASON_UNKNOWN;
data->certificate_pem = NULL;
data->certificate_errors = 0;
@@ -5046,6 +5046,7 @@ source_get_last_credentials_required_arguments_thread (GTask *task,
if (local_error != NULL) {
g_task_return_error (task, local_error);
+ invoke_credentials_required_data_free (data);
} else {
g_task_return_pointer (task, data, invoke_credentials_required_data_free);
}
diff --git a/src/libedataserver/e-webdav-discover.c b/src/libedataserver/e-webdav-discover.c
index 8629c4c0b..938d10b93 100644
--- a/src/libedataserver/e-webdav-discover.c
+++ b/src/libedataserver/e-webdav-discover.c
@@ -63,7 +63,7 @@ e_webdav_discover_split_resources (WebDAVDiscoverData *wdd,
(resource->supports & wdd->only_supports) == 0)
continue;
- discovered = g_new0 (EWebDAVDiscoveredSource, 1);
+ discovered = g_slice_new0 (EWebDAVDiscoveredSource);
discovered->href = g_strdup (resource->href);
discovered->supports = resource->supports;
discovered->display_name = g_strdup (resource->display_name);
@@ -362,7 +362,7 @@ e_webdav_discover_context_new (ESource *source,
{
EWebDAVDiscoverContext *context;
- context = g_new0 (EWebDAVDiscoverContext, 1);
+ context = g_slice_new0 (EWebDAVDiscoverContext);
context->source = g_object_ref (source);
context->url_use_path = g_strdup (url_use_path);
context->only_supports = only_supports;
@@ -391,7 +391,7 @@ e_webdav_discover_context_free (gpointer ptr)
g_free (context->out_certificate_pem);
e_webdav_discover_free_discovered_sources (context->out_discovered_sources);
g_slist_free_full (context->out_calendar_user_addresses, g_free);
- g_free (context);
+ g_slice_free (EWebDAVDiscoverContext, context);
}
static void
@@ -404,7 +404,7 @@ e_webdav_discover_source_free (gpointer ptr)
g_free (discovered_source->display_name);
g_free (discovered_source->description);
g_free (discovered_source->color);
- g_free (discovered_source);
+ g_slice_free (EWebDAVDiscoveredSource, discovered_source);
}
}
diff --git a/src/libedataserver/e-webdav-session.c b/src/libedataserver/e-webdav-session.c
index afb8ef4d7..1117e451c 100644
--- a/src/libedataserver/e-webdav-session.c
+++ b/src/libedataserver/e-webdav-session.c
@@ -92,7 +92,7 @@ e_webdav_resource_new (EWebDAVResourceKind kind,
{
EWebDAVResource *resource;
- resource = g_new0 (EWebDAVResource, 1);
+ resource = g_slice_new0 (EWebDAVResource);
resource->kind = kind;
resource->supports = supports;
resource->href = g_strdup (href);
@@ -158,7 +158,7 @@ e_webdav_resource_free (gpointer ptr)
g_free (resource->content_type);
g_free (resource->description);
g_free (resource->color);
- g_free (resource);
+ g_slice_free (EWebDAVResource, resource);
}
}
@@ -170,7 +170,7 @@ e_webdav_property_change_new (EWebDAVPropertyChangeKind kind,
{
EWebDAVPropertyChange *change;
- change = g_new0 (EWebDAVPropertyChange, 1);
+ change = g_slice_new0 (EWebDAVPropertyChange);
change->kind = kind;
change->ns_uri = g_strdup (ns_uri);
change->name = g_strdup (name);
@@ -273,7 +273,7 @@ e_webdav_property_change_free (gpointer ptr)
g_free (change->ns_uri);
g_free (change->name);
g_free (change->value);
- g_free (change);
+ g_slice_free (EWebDAVPropertyChange, change);
}
}
@@ -391,7 +391,7 @@ e_webdav_privilege_new (const gchar *ns_uri,
}
}
- privilege = g_new (EWebDAVPrivilege, 1);
+ privilege = g_slice_new (EWebDAVPrivilege);
privilege->ns_uri = g_strdup (ns_uri);
privilege->name = g_strdup (name);
privilege->description = g_strdup (description);
@@ -443,7 +443,7 @@ e_webdav_privilege_free (gpointer ptr)
g_free (privilege->ns_uri);
g_free (privilege->name);
g_free (privilege->description);
- g_free (privilege);
+ g_slice_free (EWebDAVPrivilege, privilege);
}
}
@@ -485,7 +485,7 @@ e_webdav_access_control_entry_new (EWebDAVACEPrincipalKind principal_kind,
else
g_return_val_if_fail (inherited_href == NULL, NULL);
- ace = g_new0 (EWebDAVAccessControlEntry, 1);
+ ace = g_slice_new0 (EWebDAVAccessControlEntry);
ace->principal_kind = principal_kind;
ace->principal_href = g_strdup (principal_href);
ace->flags = flags;
@@ -552,7 +552,7 @@ e_webdav_access_control_entry_free (gpointer ptr)
g_free (ace->principal_href);
g_free (ace->inherited_href);
g_slist_free_full (ace->privileges, e_webdav_privilege_free);
- g_free (ace);
+ g_slice_free (EWebDAVAccessControlEntry, ace);
}
}
diff --git a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
index bcc7ce1dd..e47ce1881 100644
--- a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
+++ b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
@@ -170,7 +170,7 @@ access_token_thread_data_free (gpointer user_data)
g_clear_object (&td->registry);
g_clear_object (&td->service);
g_free (td->authorization_code);
- g_free (td);
+ g_slice_free (AccessTokenThreadData, td);
}
}
@@ -252,7 +252,7 @@ cpi_oauth2_extract_authentication_code (ECredentialsPrompterImplOAuth2 *prompter
prompter_impl = E_CREDENTIALS_PROMPTER_IMPL (prompter_oauth2);
prompter = e_credentials_prompter_impl_get_credentials_prompter (prompter_impl);
- td = g_new0 (AccessTokenThreadData, 1);
+ td = g_slice_new0 (AccessTokenThreadData);
td->prompter_oauth2 = e_weak_ref_new (prompter_oauth2);
td->service = g_object_ref (prompter_oauth2->priv->service);
td->cancellable = g_object_ref (prompter_oauth2->priv->cancellable);
diff --git a/src/libedataserverui/e-credentials-prompter.c b/src/libedataserverui/e-credentials-prompter.c
index a0aa64e94..131927be8 100644
--- a/src/libedataserverui/e-credentials-prompter.c
+++ b/src/libedataserverui/e-credentials-prompter.c
@@ -105,7 +105,7 @@ process_prompt_data_free (gpointer ptr)
g_clear_object (&ppd->cred_source);
g_free (ppd->error_text);
e_named_parameters_free (ppd->credentials);
- g_free (ppd);
+ g_slice_free (ProcessPromptData, ppd);
}
}
@@ -124,7 +124,7 @@ lookup_source_details_data_free (gpointer ptr)
g_clear_object (&data->auth_source);
g_clear_object (&data->cred_source);
e_named_parameters_free (data->credentials);
- g_free (data);
+ g_slice_free (LookupSourceDetailsData, data);
}
}
@@ -160,7 +160,7 @@ credentials_prompter_lookup_source_details_thread (GTask *task,
} else {
LookupSourceDetailsData *data;
- data = g_new0 (LookupSourceDetailsData, 1);
+ data = g_slice_new0 (LookupSourceDetailsData);
data->auth_source = g_object_ref (source);
data->cred_source = g_object_ref (cred_source ? cred_source : source); /* always set both,
for simplicity */
data->credentials = credentials; /* NULL for no credentials available */
@@ -263,7 +263,7 @@ credentials_prompt_data_free (gpointer ptr)
g_clear_object (&data->source);
g_free (data->error_text);
- g_free (data);
+ g_slice_free (CredentialsPromptData, data);
}
}
@@ -280,11 +280,10 @@ credentials_result_data_free (gpointer ptr)
if (data) {
g_clear_object (&data->source);
e_named_parameters_free (data->credentials);
- g_free (data);
+ g_slice_free (CredentialsResultData, data);
}
}
-
static void
credentials_prompter_maybe_process_next_prompt (ECredentialsPrompter *prompter)
{
@@ -445,7 +444,7 @@ e_credentials_prompter_manage_impl_prompt (ECredentialsPrompter *prompter,
} else {
ProcessPromptData *ppd;
- ppd = g_new0 (ProcessPromptData, 1);
+ ppd = g_slice_new0 (ProcessPromptData);
ppd->prompter = e_weak_ref_new (prompter);
ppd->prompter_impl = g_object_ref (prompter_impl);
ppd->auth_source = g_object_ref (auth_source);
@@ -1630,7 +1629,7 @@ e_credentials_prompter_prompt (ECredentialsPrompter *prompter,
g_return_if_fail (E_IS_CREDENTIALS_PROMPTER (prompter));
g_return_if_fail (E_IS_SOURCE (source));
- prompt_data = g_new0 (CredentialsPromptData, 1);
+ prompt_data = g_slice_new0 (CredentialsPromptData);
prompt_data->source = g_object_ref (source);
prompt_data->error_text = g_strdup (error_text);
prompt_data->flags = flags;
@@ -1738,7 +1737,7 @@ e_credentials_prompter_complete_prompt_call (ECredentialsPrompter *prompter,
} else {
CredentialsResultData *result;
- result = g_new0 (CredentialsResultData, 1);
+ result = g_slice_new0 (CredentialsResultData);
result->source = g_object_ref (source);
result->credentials = e_named_parameters_new_clone (credentials);
diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c
index 1f4ae561c..9838398e9 100644
--- a/src/libedataserverui/e-reminders-widget.c
+++ b/src/libedataserverui/e-reminders-widget.c
@@ -750,7 +750,7 @@ foreach_selected_data_free (gpointer ptr)
if (fsd->user_data_destroy)
fsd->user_data_destroy (fsd->user_data);
g_free (fsd->error_prefix);
- g_free (fsd);
+ g_slice_free (ForeachSelectedData, fsd);
}
}
@@ -833,7 +833,7 @@ reminders_widget_foreach_selected (ERemindersWidget *reminders,
if (selected) {
ForeachSelectedData *fsd;
- fsd = g_new0 (ForeachSelectedData, 1);
+ fsd = g_slice_new0 (ForeachSelectedData);
fsd->selected = selected; /* Takes ownership */
fsd->sync_func = sync_func;
fsd->user_data = user_data;
diff --git a/src/libedataserverui/e-trust-prompt.c b/src/libedataserverui/e-trust-prompt.c
index 06e6691d6..6b3faac48 100644
--- a/src/libedataserverui/e-trust-prompt.c
+++ b/src/libedataserverui/e-trust-prompt.c
@@ -455,7 +455,7 @@ save_source_data_free (gpointer ptr)
if (data) {
g_clear_error (&data->error);
- g_free (data);
+ g_slice_free (SaveSourceData, data);
}
}
@@ -568,7 +568,7 @@ e_trust_prompt_run_for_source (GtkWindow *parent,
if (e_source_has_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND))
extension_webdav = e_source_get_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND);
- save_data = g_new0 (SaveSourceData, 1);
+ save_data = g_slice_new0 (SaveSourceData);
save_data->response = E_TRUST_PROMPT_RESPONSE_UNKNOWN;
save_data->call_save = FALSE;
diff --git a/src/libedataserverui/e-webdav-discover-widget.c b/src/libedataserverui/e-webdav-discover-widget.c
index bce73c4b6..916cd6d68 100644
--- a/src/libedataserverui/e-webdav-discover-widget.c
+++ b/src/libedataserverui/e-webdav-discover-widget.c
@@ -64,7 +64,7 @@ e_webdav_discover_content_data_free (gpointer ptr)
g_clear_object (&data->credentials_prompter);
g_clear_object (&data->source);
g_free (data->base_url);
- g_free (data);
+ g_slice_free (EWebDAVDiscoverContentData, data);
}
}
@@ -102,7 +102,7 @@ e_webdav_discover_content_new (ECredentialsPrompter *credentials_prompter,
g_return_val_if_fail (E_IS_CREDENTIALS_PROMPTER (credentials_prompter), NULL);
g_return_val_if_fail (base_url != NULL, NULL);
- data = g_new0 (EWebDAVDiscoverContentData, 1);
+ data = g_slice_new0 (EWebDAVDiscoverContentData);
data->credentials_prompter = g_object_ref (credentials_prompter);
data->source = source ? g_object_ref (source) : NULL;
data->base_url = g_strdup (base_url);
@@ -623,7 +623,7 @@ refresh_data_free (gpointer ptr)
g_clear_object (&rd->registry);
g_free (rd->base_url);
e_named_parameters_free (rd->credentials);
- g_free (rd);
+ g_slice_free (RefreshData, rd);
}
}
@@ -853,7 +853,7 @@ e_webdav_discover_content_refresh (GtkWidget *content,
return;
}
- rd = g_new0 (RefreshData, 1);
+ rd = g_slice_new0 (RefreshData);
rd->content = g_object_ref (content);
rd->cancellable = cancellable ? g_object_ref (cancellable) : g_cancellable_new ();
rd->simple = g_simple_async_result_new (G_OBJECT (content), callback, user_data,
e_webdav_discover_content_refresh);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]