summaryrefslogtreecommitdiff
path: root/src/analysis/type.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/type.c')
-rw-r--r--src/analysis/type.c78
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;