diff options
Diffstat (limited to 'src/analysis/type.c')
-rw-r--r-- | src/analysis/type.c | 78 |
1 files changed, 41 insertions, 37 deletions
diff --git a/src/analysis/type.c b/src/analysis/type.c index ca14fdc..f05b9a8 100644 --- a/src/analysis/type.c +++ b/src/analysis/type.c @@ -111,7 +111,11 @@ static void g_data_type_class_init(GDataTypeClass *klass) static void g_data_type_init(GDataType *type) { - INIT_DATA_TYPE_EXTRA(type); + type_extra_data_t *extra; /* Données insérées à modifier */ + + extra = GET_DATA_TYPE_EXTRA(type); + + INIT_GOBJECT_EXTRA_LOCK(extra); g_data_type_set_qualifiers(type, TQF_NONE); @@ -280,7 +284,7 @@ static bool g_data_type_load(GDataType *type, GObjectStorage *storage, packed_bu static bool _g_data_type_store(const GDataType *type, GObjectStorage *storage, packed_buffer_t *pbuf) { bool result; /* Bilan à retourner */ - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ result = pack_uleb128((uleb128_t []){ g_data_type_get_qualifiers(type) }, pbuf); if (!result) goto exit; @@ -290,7 +294,7 @@ static bool _g_data_type_store(const GDataType *type, GObjectStorage *storage, p extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = extend_packed_buffer(pbuf, extra->ns_sep, 2 * sizeof(char), false); if (!result) goto unlocking_exit; @@ -306,7 +310,7 @@ static bool _g_data_type_store(const GDataType *type, GObjectStorage *storage, p unlocking_exit: - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); exit: @@ -390,7 +394,7 @@ GDataType *g_data_type_dup(const GDataType *type) { GDataType *result; /* Copie à retourner */ GDataTypeClass *class; /* Classe du type */ - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ GDataType *ns; /* Eventuel espace de noms */ bool status; /* Bilan d'un rattachement */ @@ -404,7 +408,7 @@ GDataType *g_data_type_dup(const GDataType *type) extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); if (extra->ns_sep[0] != '\0') { @@ -422,7 +426,7 @@ GDataType *g_data_type_dup(const GDataType *type) } - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -446,7 +450,7 @@ char *g_data_type_to_string(const GDataType *type, bool include) { char *result; /* Chaîne à retourner */ GDataTypeClass *class; /* Classe du type */ - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ char *namespace; /* Groupe d'appartenance */ TypeQualifier qualifiers; /* Qualificatifs du type */ @@ -461,7 +465,7 @@ char *g_data_type_to_string(const GDataType *type, bool include) { extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); if (type->namespace != NULL && g_data_type_handle_namespaces(type)) { @@ -474,7 +478,7 @@ char *g_data_type_to_string(const GDataType *type, bool include) } - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); } @@ -509,15 +513,15 @@ char *g_data_type_to_string(const GDataType *type, bool include) void g_data_type_set_qualifiers(GDataType *type, TypeQualifier qualifiers) { - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); extra->qualifiers = qualifiers; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); } @@ -537,15 +541,15 @@ void g_data_type_set_qualifiers(GDataType *type, TypeQualifier qualifiers) void g_data_type_add_qualifier(GDataType *type, TypeQualifier qualifier) { - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); extra->qualifiers |= qualifier; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); } @@ -565,15 +569,15 @@ void g_data_type_add_qualifier(GDataType *type, TypeQualifier qualifier) TypeQualifier g_data_type_get_qualifiers(const GDataType *type) { TypeQualifier result; /* Qualificatifs à renvoyer */ - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = extra->qualifiers; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -597,7 +601,7 @@ TypeQualifier g_data_type_get_qualifiers(const GDataType *type) bool g_data_type_set_namespace(GDataType *type, GDataType *namespace, const char *sep) { bool result; /* Bilan à retourner */ - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ result = ((namespace == NULL && sep == NULL) || (namespace != NULL && sep != NULL && sep[0] != '\0')); @@ -605,7 +609,7 @@ bool g_data_type_set_namespace(GDataType *type, GDataType *namespace, const char { extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); if (sep == NULL) { @@ -625,7 +629,7 @@ bool g_data_type_set_namespace(GDataType *type, GDataType *namespace, const char g_object_ref(G_OBJECT(namespace)); - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); } @@ -649,18 +653,18 @@ bool g_data_type_set_namespace(GDataType *type, GDataType *namespace, const char GDataType *g_data_type_get_namespace(const GDataType *type) { GDataType *result; /* Espace à renvoyer */ - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = type->namespace; if (result != NULL) g_object_ref(G_OBJECT(result)); - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -682,11 +686,11 @@ GDataType *g_data_type_get_namespace(const GDataType *type) char *g_data_type_get_namespace_separator(const GDataType *type) { char *result; /* Séparateur à retourner */ - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); if (extra->ns_sep[0] == '\0') result = NULL; @@ -697,7 +701,7 @@ char *g_data_type_get_namespace_separator(const GDataType *type) else result = strndup(extra->ns_sep, 2); - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -748,15 +752,15 @@ bool g_data_type_handle_namespaces(const GDataType *type) void g_data_type_set_flags(GDataType *type, TypeFlag flags) { - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); extra->flags = flags; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); } @@ -776,15 +780,15 @@ void g_data_type_set_flags(GDataType *type, TypeFlag flags) void g_data_type_add_flag(GDataType *type, TypeFlag flag) { - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); extra->flags |= flag; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); } @@ -804,15 +808,15 @@ void g_data_type_add_flag(GDataType *type, TypeFlag flag) TypeFlag g_data_type_get_flags(const GDataType *type) { TypeFlag result; /* Propriétés à renvoyer */ - type_obj_extra *extra; /* Données insérées à modifier */ + type_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_DATA_TYPE_EXTRA(type); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = extra->flags; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; |