diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2021-08-14 19:54:31 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2021-08-14 19:54:31 (GMT) |
commit | a6c0351774988094a51c9502f2a8e07633956263 (patch) | |
tree | dcaad9d00b6ce130d9af012286899ab877cc82cb /src/format/format.c | |
parent | 0daed1fa6212eb83b65ccd10c9f2c80bf12c6d27 (diff) |
Improve the object padding exploitation for operands.
Diffstat (limited to 'src/format/format.c')
-rw-r--r-- | src/format/format.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/format/format.c b/src/format/format.c index 045bc92..f8fe13a 100644 --- a/src/format/format.c +++ b/src/format/format.c @@ -123,7 +123,11 @@ static void g_binary_format_class_init(GBinFormatClass *klass) static void g_binary_format_init(GBinFormat *format) { - INIT_BIN_FORMAT_EXTRA(format); + fmt_extra_data_t *extra; /* Données insérées à modifier */ + + extra = GET_BIN_FORMAT_EXTRA(format); + + INIT_GOBJECT_EXTRA_LOCK(extra); g_rw_lock_init(&format->pt_lock); @@ -235,17 +239,17 @@ static void g_binary_format_finalize(GBinFormat *format) bool g_binary_format_set_flag(GBinFormat *format, FormatFlag flag) { bool result; /* Bilan à retourner */ - fmt_obj_extra *extra; /* Données insérées à modifier */ + fmt_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_FORMAT_EXTRA(format); - 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; @@ -268,17 +272,17 @@ bool g_binary_format_set_flag(GBinFormat *format, FormatFlag flag) bool g_binary_format_unset_flag(GBinFormat *format, FormatFlag flag) { bool result; /* Bilan à retourner */ - fmt_obj_extra *extra; /* Données insérées à modifier */ + fmt_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_FORMAT_EXTRA(format); - 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; @@ -301,15 +305,15 @@ bool g_binary_format_unset_flag(GBinFormat *format, FormatFlag flag) bool g_binary_format_has_flag(const GBinFormat *format, FormatFlag flag) { bool result; /* Bilan à retourner */ - fmt_obj_extra *extra; /* Données insérées à modifier */ + fmt_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_FORMAT_EXTRA(format); - 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; @@ -331,15 +335,15 @@ bool g_binary_format_has_flag(const GBinFormat *format, FormatFlag flag) FormatFlag g_binary_format_get_flags(const GBinFormat *format) { FormatFlag result; /* Fanions à retourner */ - fmt_obj_extra *extra; /* Données insérées à modifier */ + fmt_extra_data_t *extra; /* Données insérées à modifier */ extra = GET_BIN_FORMAT_EXTRA(format); - g_bit_lock(&extra->lock, HOLE_LOCK_BIT); + LOCK_GOBJECT_EXTRA(extra); result = (extra->flags & FFL_MASK); - g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); + UNLOCK_GOBJECT_EXTRA(extra); return result; |