diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-12-18 21:36:14 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-12-18 21:36:14 (GMT) |
commit | d50544a3de540727137f2b13010ca4450f8ea10f (patch) | |
tree | 05e4ad65c25570016d5732f425a9eff2f4117d34 /src/arch/sharing/instance-int.h | |
parent | b0bcf250999b2242019f137e38f52390a86e71cd (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.h | 12 |
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 */ }; |