summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiels De Graef <nielsdegraef@gmail.com>2023-01-16 13:57:36 +0100
committerNiels De Graef <ndegraef@redhat.com>2023-01-16 15:33:25 +0100
commit2709cd4c985c507f29b73b82adc55b91d4c5eca0 (patch)
tree00d4b57528f4d18fe70b47bcdb9584757a2c1a6b
parentf5c46c8e18aa37898e1da25559937ad375b00fc3 (diff)
downloadgcr-2709cd4c985c507f29b73b82adc55b91d4c5eca0.tar.gz
Stop using GSlice
GLib is discussing deprecating/removing it upstream [1] since it has only limited uses. Next to that, it seems to bork stack traces here when using ASAN (for which you also have to specify `G_SLICE=always-malloc` too). In other words, let's just get rid of using `GSLice` and call the allocation APIs directly. [1]: https://gitlab.gnome.org/GNOME/glib/-/issues/1079
-rw-r--r--egg/egg-asn1x.c20
-rw-r--r--gck/gck-attributes.c26
-rw-r--r--gck/gck-enumerator.c4
-rw-r--r--gcr/gcr-certificate-chain.c4
-rw-r--r--gcr/gcr-record.c8
-rw-r--r--gcr/gcr-subject-public-key.c4
-rw-r--r--gcr/gcr-system-prompter.c8
7 files changed, 37 insertions, 37 deletions
diff --git a/egg/egg-asn1x.c b/egg/egg-asn1x.c
index 47f2392..30af6fd 100644
--- a/egg/egg-asn1x.c
+++ b/egg/egg-asn1x.c
@@ -208,7 +208,7 @@ allocator_closure_free (gpointer data)
AllocatorClosure *closure = data;
g_assert (closure->allocator);
(closure->allocator) (closure->allocated, 0);
- g_slice_free (AllocatorClosure, closure);
+ g_free (closure);
}
static GBytes *
@@ -224,7 +224,7 @@ bytes_new_with_allocator (EggAllocator allocator,
if (allocator) {
*data = (allocator) (NULL, length + 1);
g_return_val_if_fail (*data != NULL, NULL);
- closure = g_slice_new (AllocatorClosure);
+ closure = g_new0 (AllocatorClosure, 1);
closure->allocated = *data;
closure->allocator = allocator;
return g_bytes_new_with_free_func (*data, length,
@@ -239,7 +239,7 @@ bytes_new_with_allocator (EggAllocator allocator,
static GNode*
anode_new (const EggAsn1xDef *def)
{
- Anode *an = g_slice_new0 (Anode);
+ Anode *an = g_new0 (Anode, 1);
an->def = def;
return g_node_new (an);
}
@@ -248,7 +248,7 @@ static gpointer
anode_copy_func (gconstpointer src, gpointer unused)
{
const Anode *san = src;
- Anode *an = g_slice_new0 (Anode);
+ Anode *an = g_new0 (Anode, 1);
an->def = san->def;
an->join = san->join;
an->opts = g_list_copy (san->opts);
@@ -431,7 +431,7 @@ anode_opts_lookup (GNode *node, gint type, const gchar *name)
static Atlv *
atlv_new (void)
{
- return g_slice_new0 (Atlv);
+ return g_new0 (Atlv, 1);
}
static void
@@ -450,7 +450,7 @@ atlv_free (Atlv *tlv)
if (tlv->value)
g_bytes_unref (tlv->value);
- g_slice_free (Atlv, tlv);
+ g_free (tlv);
}
static Atlv *
@@ -462,7 +462,7 @@ atlv_dup (Atlv *tlv,
if (!tlv)
return NULL;
- copy = g_slice_new0 (Atlv);
+ copy = g_new0 (Atlv, 1);
memcpy (copy, tlv, sizeof (Atlv));
if (tlv->value != NULL)
@@ -563,7 +563,7 @@ anode_free_func (GNode *node, gpointer unused)
Anode *an = node->data;
anode_clear (node);
g_list_free (an->opts);
- g_slice_free (Anode, an);
+ g_free (an);
return FALSE;
}
@@ -1542,7 +1542,7 @@ atlv_sort_perform (Atlv *tlv,
bytes = atlv_unparse_to_bytes (ctlv, allocator);
g_return_if_fail (bytes != NULL);
- pair = g_slice_new0 (SortPair);
+ pair = g_new0 (SortPair, 1);
pair->bytes = bytes;
pair->tlv = ctlv;
pairs = g_list_prepend (pairs, pair);
@@ -1566,7 +1566,7 @@ atlv_sort_perform (Atlv *tlv,
}
g_bytes_unref (pair->bytes);
- g_slice_free (SortPair, pair);
+ g_free (pair);
}
g_list_free (pairs);
diff --git a/gck/gck-attributes.c b/gck/gck-attributes.c
index 3ba9be1..92c11a5 100644
--- a/gck/gck-attributes.c
+++ b/gck/gck-attributes.c
@@ -196,7 +196,7 @@ gck_builder_new (GckBuilderFlags flags)
{
GckBuilder *builder;
GckRealBuilder *real;
- builder = g_slice_new (GckBuilder);
+ builder = g_new0 (GckBuilder, 1);
gck_builder_init_full (builder, flags);
real = (GckRealBuilder *)builder;
real->refs = 1;
@@ -252,7 +252,7 @@ gck_builder_unref (GckBuilder *builder)
if (g_atomic_int_dec_and_test (&real->refs)) {
gck_builder_clear (builder);
- g_slice_free (GckBuilder, builder);
+ g_free (builder);
}
}
@@ -1290,7 +1290,7 @@ gck_builder_end (GckBuilder *builder)
data = NULL;
}
- attrs = g_slice_new0 (GckAttributes);
+ attrs = g_new0 (GckAttributes, 1);
attrs->count = length;
attrs->data = data;
attrs->refs = 1;
@@ -1688,7 +1688,7 @@ gck_attribute_new (gulong attr_type,
const guchar *value,
gsize length)
{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
+ GckAttribute *attr = g_new0 (GckAttribute, 1);
gck_attribute_init (attr, attr_type, value, length);
return attr;
}
@@ -1707,7 +1707,7 @@ gck_attribute_new (gulong attr_type,
GckAttribute *
gck_attribute_new_invalid (gulong attr_type)
{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
+ GckAttribute *attr = g_new0 (GckAttribute, 1);
gck_attribute_init_invalid (attr, attr_type);
return attr;
}
@@ -1724,7 +1724,7 @@ gck_attribute_new_invalid (gulong attr_type)
GckAttribute *
gck_attribute_new_empty (gulong attr_type)
{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
+ GckAttribute *attr = g_new0 (GckAttribute, 1);
gck_attribute_init_empty (attr, attr_type);
return attr;
}
@@ -1744,7 +1744,7 @@ GckAttribute *
gck_attribute_new_boolean (gulong attr_type,
gboolean value)
{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
+ GckAttribute *attr = g_new0 (GckAttribute, 1);
gck_attribute_init_boolean (attr, attr_type, value);
return attr;
}
@@ -1764,7 +1764,7 @@ GckAttribute *
gck_attribute_new_date (gulong attr_type,
const GDate *value)
{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
+ GckAttribute *attr = g_new0 (GckAttribute, 1);
gck_attribute_init_date (attr, attr_type, value);
return attr;
}
@@ -1784,7 +1784,7 @@ GckAttribute *
gck_attribute_new_ulong (gulong attr_type,
gulong value)
{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
+ GckAttribute *attr = g_new0 (GckAttribute, 1);
gck_attribute_init_ulong (attr, attr_type, value);
return attr;
}
@@ -1806,7 +1806,7 @@ GckAttribute *
gck_attribute_new_string (gulong attr_type,
const gchar *value)
{
- GckAttribute *attr = g_slice_new0 (GckAttribute);
+ GckAttribute *attr = g_new0 (GckAttribute, 1);
gck_attribute_init_string (attr, attr_type, value);
return attr;
}
@@ -1832,7 +1832,7 @@ gck_attribute_dup (const GckAttribute *attr)
if (!attr)
return NULL;
- copy = g_slice_new0 (GckAttribute);
+ copy = g_new0 (GckAttribute, 1);
gck_attribute_init_copy (copy, attr);
return copy;
}
@@ -1904,7 +1904,7 @@ gck_attribute_free (gpointer attr)
GckAttribute *a = attr;
if (attr) {
gck_attribute_clear (a);
- g_slice_free (GckAttribute, a);
+ g_free (a);
}
}
@@ -2210,7 +2210,7 @@ gck_attributes_unref (gpointer attrs)
value_unref (attr->value);
}
g_free (attrs_->data);
- g_slice_free (GckAttributes, attrs_);
+ g_free (attrs_);
}
}
diff --git a/gck/gck-enumerator.c b/gck/gck-enumerator.c
index 7a72663..b861fb6 100644
--- a/gck/gck-enumerator.c
+++ b/gck/gck-enumerator.c
@@ -137,7 +137,7 @@ _gck_enumerator_result_free (gpointer data)
g_object_unref (result->session);
if (result->attrs)
gck_attributes_unref (result->attrs);
- g_slice_free (GckEnumeratorResult, result);
+ g_free (result);
}
static gpointer
@@ -437,7 +437,7 @@ state_find (GckEnumeratorState *args,
g_debug ("matched %lu objects", count);
for (i = 0; i < count; i++) {
- result = g_slice_new0 (GckEnumeratorResult);
+ result = g_new0 (GckEnumeratorResult, 1);
result->handle = objects[i];
result->session = g_object_ref (args->session);
g_queue_push_tail (args->found, result);
diff --git a/gcr/gcr-certificate-chain.c b/gcr/gcr-certificate-chain.c
index c5cb8b8..adf8457 100644
--- a/gcr/gcr-certificate-chain.c
+++ b/gcr/gcr-certificate-chain.c
@@ -105,13 +105,13 @@ free_chain_private (gpointer data)
g_ptr_array_unref (pv->certificates);
g_free (pv->purpose);
g_free (pv->peer);
- g_slice_free (GcrCertificateChainPrivate, pv);
+ g_free (pv);
}
static GcrCertificateChainPrivate*
new_chain_private (void)
{
- GcrCertificateChainPrivate *pv = g_slice_new0 (GcrCertificateChainPrivate);
+ GcrCertificateChainPrivate *pv = g_new0 (GcrCertificateChainPrivate, 1);
pv->certificates = g_ptr_array_new_with_free_func (g_object_unref);
return pv;
}
diff --git a/gcr/gcr-record.c b/gcr/gcr-record.c
index e928200..66e7757 100644
--- a/gcr/gcr-record.c
+++ b/gcr/gcr-record.c
@@ -99,7 +99,7 @@ record_flatten (GcrRecord *record)
total += strlen (record->columns[i]) + 1;
/* Allocate a new GcrRecordData which will hold all that */
- result = g_slice_new0 (GcrRecord);
+ result = g_new0 (GcrRecord, 1);
result->block = block = record_block_new (NULL, total);
at = 0;
@@ -149,7 +149,7 @@ _gcr_record_new (GQuark schema,
GcrRecord *result;
guint i;
- result = g_slice_new0 (GcrRecord);
+ result = g_new0 (GcrRecord, 1);
result->block = NULL;
result->delimiter = delimiter;
@@ -177,7 +177,7 @@ take_and_parse_internal (GcrRecordBlock *block,
g_assert (block);
- result = g_slice_new0 (GcrRecord);
+ result = g_new0 (GcrRecord, 1);
result->block = block;
result->delimiter = delimiter;
@@ -725,7 +725,7 @@ _gcr_record_free (gpointer record)
g_free (block);
}
- g_slice_free (GcrRecord, record);
+ g_free (record);
}
GQuark
diff --git a/gcr/gcr-subject-public-key.c b/gcr/gcr-subject-public-key.c
index 9ae79f7..0a7ea0d 100644
--- a/gcr/gcr-subject-public-key.c
+++ b/gcr/gcr-subject-public-key.c
@@ -508,7 +508,7 @@ load_closure_free (gpointer data)
LoadClosure *closure = data;
g_object_unref (closure->object);
gck_builder_clear (&closure->builder);
- g_slice_free (LoadClosure, closure);
+ g_free (closure);
}
static void
@@ -539,7 +539,7 @@ _gcr_subject_public_key_load_async (GckObject *key,
task = g_task_new (NULL, cancellable, callback, user_data);
g_task_set_source_tag (task, _gcr_subject_public_key_load_async);
- closure = g_slice_new0 (LoadClosure);
+ closure = g_new0 (LoadClosure, 1);
closure->object = g_object_ref (key);
lookup_attributes (key, &closure->builder);
g_task_set_task_data (task, closure, load_closure_free);
diff --git a/gcr/gcr-system-prompter.c b/gcr/gcr-system-prompter.c
index 0f993ee..036ea45 100644
--- a/gcr/gcr-system-prompter.c
+++ b/gcr/gcr-system-prompter.c
@@ -156,7 +156,7 @@ on_prompt_close (GcrPrompt *prompt,
static Callback *
callback_dup (Callback *original)
{
- Callback *callback = g_slice_new0 (Callback);
+ Callback *callback = g_new0 (Callback, 1);
g_assert (original != NULL);
g_assert (original->path != NULL);
g_assert (original->name != NULL);
@@ -171,7 +171,7 @@ callback_free (gpointer data)
Callback *callback = data;
g_free ((gchar *)callback->path);
g_free ((gchar *)callback->name);
- g_slice_free (Callback, callback);
+ g_free (callback);
}
static guint
@@ -208,7 +208,7 @@ active_prompt_unref (gpointer data)
g_hash_table_destroy (active->changed);
if (active->exchange)
g_object_unref (active->exchange);
- g_slice_free (ActivePrompt, active);
+ g_free (active);
}
}
@@ -226,7 +226,7 @@ active_prompt_create (GcrSystemPrompter *self,
{
ActivePrompt *active;
- active = g_slice_new0 (ActivePrompt);
+ active = g_new0 (ActivePrompt, 1);
active->refs = 1;
active->callback = callback_dup (lookup);
active->prompter = g_object_ref (self);