diff options
Diffstat (limited to 'src/format/symbol.c')
-rw-r--r-- | src/format/symbol.c | 66 |
1 files changed, 35 insertions, 31 deletions
diff --git a/src/format/symbol.c b/src/format/symbol.c index eb61db8..d3d5285 100644 --- a/src/format/symbol.c +++ b/src/format/symbol.c @@ -124,7 +124,11 @@ static void g_binary_symbol_class_init(GBinSymbolClass *klass) static void g_binary_symbol_init(GBinSymbol *symbol) { - INIT_BIN_SYMBOL_EXTRA(symbol); + sym_extra_data_t *extra; /* Données insérées à modifier */ + + extra = GET_BIN_SYMBOL_EXTRA(symbol); + + INIT_GOBJECT_EXTRA_LOCK(extra); g_binary_symbol_set_stype(symbol, STP_COUNT); @@ -331,15 +335,15 @@ const mrange_t *g_binary_symbol_get_range(const GBinSymbol *symbol) void g_binary_symbol_set_stype(GBinSymbol *symbol, SymbolType type) { - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); extra->stype = type; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); } @@ -359,15 +363,15 @@ void g_binary_symbol_set_stype(GBinSymbol *symbol, SymbolType type) SymbolType g_binary_symbol_get_stype(const GBinSymbol *symbol) { SymbolType result; /* Type à retourner */ - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = extra->stype; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -389,15 +393,15 @@ SymbolType g_binary_symbol_get_stype(const GBinSymbol *symbol) void g_binary_symbol_set_status(GBinSymbol *symbol, SymbolStatus status) { - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); extra->status = status; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); } @@ -417,15 +421,15 @@ void g_binary_symbol_set_status(GBinSymbol *symbol, SymbolStatus status) SymbolStatus g_binary_symbol_get_status(const GBinSymbol *symbol) { SymbolStatus result; /* Visibilité à retourner */ - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = extra->status; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -448,17 +452,17 @@ SymbolStatus g_binary_symbol_get_status(const GBinSymbol *symbol) bool g_binary_symbol_set_flag(GBinSymbol *symbol, SymbolFlag flag) { bool result; /* Bilan à retourner */ - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = !(extra->flags & flag); extra->flags |= flag; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -481,17 +485,17 @@ bool g_binary_symbol_set_flag(GBinSymbol *symbol, SymbolFlag flag) bool g_binary_symbol_unset_flag(GBinSymbol *symbol, SymbolFlag flag) { bool result; /* Bilan à retourner */ - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = (extra->flags & flag); extra->flags &= ~flag; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -514,15 +518,15 @@ bool g_binary_symbol_unset_flag(GBinSymbol *symbol, SymbolFlag flag) bool g_binary_symbol_has_flag(const GBinSymbol *symbol, SymbolFlag flag) { bool result; /* Bilan à retourner */ - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = (extra->flags & flag); - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -544,15 +548,15 @@ bool g_binary_symbol_has_flag(const GBinSymbol *symbol, SymbolFlag flag) SymbolFlag g_binary_symbol_get_flags(const GBinSymbol *symbol) { SymbolFlag result; /* Fanions à retourner */ - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - 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; @@ -575,18 +579,18 @@ SymbolFlag g_binary_symbol_get_flags(const GBinSymbol *symbol) bool g_binary_symbol_get_nm_prefix(const GBinSymbol *symbol, char *prefix) { bool result; /* Validité à retourner */ - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = (extra->flags & SFL_HAS_NM_PREFIX); if (result) *prefix = extra->nm_prefix; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; @@ -607,16 +611,16 @@ bool g_binary_symbol_get_nm_prefix(const GBinSymbol *symbol, char *prefix) void g_binary_symbol_set_nm_prefix(const GBinSymbol *symbol, char prefix) { - sym_obj_extra *extra; /* Données insérées à modifier */ + sym_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_SYMBOL_EXTRA(symbol); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); extra->nm_prefix = prefix; extra->flags |= SFL_HAS_NM_PREFIX; - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); } |