summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorentin Noël <corentin@elementary.io>2022-02-07 20:48:36 +0100
committerCorentin Noël <tintou@noel.tf>2022-04-09 00:44:24 +0200
commit15db0be9ce375cdf8ce5d8b129aecefe31c9716e (patch)
tree89807dcafcf9de8bbe427bf2e9faf883986d8bfa
parent656e4aca6dafc10ffc3f7466cfb29ab44b06c524 (diff)
downloadgcr-15db0be9ce375cdf8ce5d8b129aecefe31c9716e.tar.gz
gck-slot: Use G_DECLARE_FINAL_TYPE to declare the type
-rw-r--r--gck/gck-slot.c53
-rw-r--r--gck/gck.h34
-rw-r--r--gck/test-gck-slot.c2
3 files changed, 27 insertions, 62 deletions
diff --git a/gck/gck-slot.c b/gck/gck-slot.c
index a2b4a7c..b297629 100644
--- a/gck/gck-slot.c
+++ b/gck/gck-slot.c
@@ -46,12 +46,14 @@ enum {
PROP_HANDLE
};
-struct _GckSlotPrivate {
+struct _GckSlot {
+ GObject parent_instance;
+
GckModule *module;
CK_SLOT_ID handle;
};
-G_DEFINE_TYPE_WITH_PRIVATE (GckSlot, gck_slot, G_TYPE_OBJECT);
+G_DEFINE_TYPE (GckSlot, gck_slot, G_TYPE_OBJECT);
/* ----------------------------------------------------------------------------
* OBJECT
@@ -60,7 +62,6 @@ G_DEFINE_TYPE_WITH_PRIVATE (GckSlot, gck_slot, G_TYPE_OBJECT);
static void
gck_slot_init (GckSlot *self)
{
- self->pv = gck_slot_get_instance_private (self);
}
static void
@@ -92,14 +93,13 @@ gck_slot_set_property (GObject *obj, guint prop_id, const GValue *value,
switch (prop_id) {
case PROP_MODULE:
- g_assert (!self->pv->module);
- self->pv->module = g_value_get_object (value);
- g_assert (self->pv->module);
- g_object_ref (self->pv->module);
+ g_assert (!self->module);
+ self->module = g_value_dup_object (value);
+ g_assert (self->module);
break;
case PROP_HANDLE:
- g_assert (!self->pv->handle);
- self->pv->handle = g_value_get_ulong (value);
+ g_assert (!self->handle);
+ self->handle = g_value_get_ulong (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
@@ -112,7 +112,7 @@ gck_slot_finalize (GObject *obj)
{
GckSlot *self = GCK_SLOT (obj);
- g_clear_object (&self->pv->module);
+ g_clear_object (&self->module);
G_OBJECT_CLASS (gck_slot_parent_class)->finalize (obj);
}
@@ -207,9 +207,9 @@ gck_slot_info_free (GckSlotInfo *slot_info)
{
if (!slot_info)
return;
- g_free (slot_info->slot_description);
- g_free (slot_info->manufacturer_id);
- g_free (slot_info);
+ g_clear_pointer (&slot_info->slot_description, g_free);
+ g_clear_pointer (&slot_info->manufacturer_id, g_free);
+ g_clear_pointer (&slot_info, g_free);
}
/**
@@ -422,20 +422,15 @@ gck_mechanisms_check (GArray *mechanisms, ...)
* %FALSE if either is not a GckSlot.
**/
gboolean
-gck_slot_equal (gconstpointer slot1, gconstpointer slot2)
+gck_slot_equal (GckSlot *slot1, GckSlot *slot2)
{
- GckSlot *s1, *s2;
-
if (slot1 == slot2)
return TRUE;
if (!GCK_IS_SLOT (slot1) || !GCK_IS_SLOT (slot2))
return FALSE;
- s1 = GCK_SLOT (slot1);
- s2 = GCK_SLOT (slot2);
-
- return s1->pv->handle == s2->pv->handle &&
- gck_module_equal (s1->pv->module, s2->pv->module);
+ return slot1->handle == slot2->handle &&
+ gck_module_equal (slot1->module, slot2->module);
}
/**
@@ -450,16 +445,12 @@ gck_slot_equal (gconstpointer slot1, gconstpointer slot2)
* Return value: An integer that can be used as a hash value, or 0 if invalid.
**/
guint
-gck_slot_hash (gconstpointer slot)
+gck_slot_hash (GckSlot *slot)
{
- GckSlot *self;
-
g_return_val_if_fail (GCK_IS_SLOT (slot), 0);
- self = GCK_SLOT (slot);
-
- return _gck_ulong_hash (&self->pv->handle) ^
- gck_module_hash (self->pv->module);
+ return _gck_ulong_hash (&slot->handle) ^
+ gck_module_hash (slot->module);
}
/**
@@ -493,7 +484,7 @@ gulong
gck_slot_get_handle (GckSlot *self)
{
g_return_val_if_fail (GCK_IS_SLOT (self), (CK_SLOT_ID)-1);
- return self->pv->handle;
+ return self->handle;
}
/**
@@ -509,8 +500,8 @@ GckModule *
gck_slot_get_module (GckSlot *self)
{
g_return_val_if_fail (GCK_IS_SLOT (self), NULL);
- g_return_val_if_fail (GCK_IS_MODULE (self->pv->module), NULL);
- return g_object_ref (self->pv->module);
+ g_return_val_if_fail (GCK_IS_MODULE (self->module), NULL);
+ return g_object_ref (self->module);
}
/**
diff --git a/gck/gck.h b/gck/gck.h
index 70337f4..ee66cd4 100644
--- a/gck/gck.h
+++ b/gck/gck.h
@@ -643,36 +643,12 @@ gboolean gck_mechanisms_check (GArray *mechanisms,
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GckMechanismInfo, gck_mechanism_info_free);
#define GCK_TYPE_SLOT (gck_slot_get_type())
-#define GCK_SLOT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCK_TYPE_SLOT, GckSlot))
-#define GCK_SLOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCK_TYPE_SLOT, GckSlot))
-#define GCK_IS_SLOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCK_TYPE_SLOT))
-#define GCK_IS_SLOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCK_TYPE_SLOT))
-#define GCK_SLOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCK_TYPE_SLOT, GckSlotClass))
+G_DECLARE_FINAL_TYPE (GckSlot, gck_slot, GCK, SLOT, GObject)
-typedef struct _GckSlotClass GckSlotClass;
-typedef struct _GckSlotPrivate GckSlotPrivate;
+gboolean gck_slot_equal (GckSlot *slot1,
+ GckSlot *slot2);
-struct _GckSlot {
- GObject parent;
-
- /*< private >*/
- GckSlotPrivate *pv;
- gpointer reserved[4];
-};
-
-struct _GckSlotClass {
- GObjectClass parent;
-
- /*< private >*/
- gpointer reserved[9];
-};
-
-GType gck_slot_get_type (void) G_GNUC_CONST;
-
-gboolean gck_slot_equal (gconstpointer slot1,
- gconstpointer slot2);
-
-guint gck_slot_hash (gconstpointer slot);
+guint gck_slot_hash (GckSlot *slot);
gboolean gck_slot_match (GckSlot *self,
GckUriData *uri);
@@ -740,8 +716,6 @@ GckEnumerator* gck_slots_enumerate_objects (GList *slots,
GckAttributes *match,
GckSessionOptions options);
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (GckSlot, g_object_unref);
-
/* ------------------------------------------------------------------------
* SESSION
*/
diff --git a/gck/test-gck-slot.c b/gck/test-gck-slot.c
index 4cfddbe..6d09c42 100644
--- a/gck/test-gck-slot.c
+++ b/gck/test-gck-slot.c
@@ -156,7 +156,7 @@ test_slot_equals_hash (Test *test, gconstpointer unused)
g_object_unref (other_slot);
obj = g_object_new (G_TYPE_OBJECT, NULL);
- g_assert_false (gck_slot_equal (test->slot, obj));
+ g_assert_false (gck_slot_equal (test->slot, (GckSlot *) obj));
g_object_unref (obj);
other_slot = g_object_new (GCK_TYPE_SLOT, "module", test->module, "handle", 8909, NULL);