summaryrefslogtreecommitdiff
path: root/src/arch/sharing/instance-int.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-12-18 21:36:14 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-12-18 21:36:14 (GMT)
commitd50544a3de540727137f2b13010ca4450f8ea10f (patch)
tree05e4ad65c25570016d5732f425a9eff2f4117d34 /src/arch/sharing/instance-int.h
parentb0bcf250999b2242019f137e38f52390a86e71cd (diff)
Used a fast sorted array to track shared instances instead of a simple hash table.
Diffstat (limited to 'src/arch/sharing/instance-int.h')
-rw-r--r--src/arch/sharing/instance-int.h12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/arch/sharing/instance-int.h b/src/arch/sharing/instance-int.h
index 0b57cc4..0117e05 100644
--- a/src/arch/sharing/instance-int.h
+++ b/src/arch/sharing/instance-int.h
@@ -30,7 +30,7 @@
/* Initialise un nouvel objet partagé avec des informations. */
-typedef bool (* init_shared_fc) (GSharedInstance *, const void *);
+typedef bool (* init_shared_fc) (GSharedInstance *, const GSharedInstance *);
/* Fournit la valeur du compteur de partage. */
typedef unsigned int (* get_shared_ref_fc) (const GSharedInstance *);
@@ -41,11 +41,8 @@ typedef void (* inc_shared_ref_fc) (GSharedInstance *);
/* Décrémente le compteur de partage. */
typedef void (* dec_shared_ref_fc) (GSharedInstance *);
-/* Indique l'objet partagé correspond à une description donnée. */
-typedef bool (* compare_shared_info_fc) (const GSharedInstance *, const void *);
-
-/* Détermine si deux instances partagées sont identiques. */
-typedef gboolean (* is_shared_equal_fc) (const GSharedInstance *, const GSharedInstance *);
+/* Procède à l'initialisation de l'interface de partage. */
+typedef int (* qck_compare_shared_fc) (const GSharedInstance **, const GSharedInstance **);
/* Règles de partage d'une instance GObject (interface) */
@@ -59,8 +56,7 @@ struct _GSharedInstanceIface
inc_shared_ref_fc inc_ref; /* Incrémentation du compteur */
dec_shared_ref_fc dec_ref; /* Décrémentation du compteur */
- compare_shared_info_fc cmp_info; /* Comparaison des détails */
- is_shared_equal_fc is_equal; /* Comparaison d'instance */
+ qck_compare_shared_fc qck_cmp; /* Comparaison des détails */
};