summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/analysis/type-int.h4
-rw-r--r--src/arch/instruction-int.h4
-rw-r--r--src/arch/instructions/undefined-int.h4
-rw-r--r--src/arch/operand-int.h4
-rw-r--r--src/arch/operands/immediate-int.h4
-rw-r--r--src/arch/operands/known.c12
-rw-r--r--src/arch/operands/proxy.c12
-rw-r--r--src/arch/operands/target-int.h4
-rw-r--r--src/format/format-int.h4
-rw-r--r--src/format/symbol-int.h4
-rw-r--r--src/glibext/objhole.h28
11 files changed, 54 insertions, 30 deletions
diff --git a/src/analysis/type-int.h b/src/analysis/type-int.h
index 8999b19..5a804ab 100644
--- a/src/analysis/type-int.h
+++ b/src/analysis/type-int.h
@@ -88,7 +88,7 @@ struct _GDataType
{
GObject parent; /* A laisser en premier */
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
/**
* L'inclusion des informations suivantes dépend de l'architecture.
@@ -128,7 +128,7 @@ struct _GDataTypeClass
* Accès aux informations éventuellement déportées.
*/
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
# define GET_DATA_TYPE_EXTRA(tp) (type_extra_data_t *)&tp->extra
diff --git a/src/arch/instruction-int.h b/src/arch/instruction-int.h
index f8998a1..7dbbe27 100644
--- a/src/arch/instruction-int.h
+++ b/src/arch/instruction-int.h
@@ -90,7 +90,7 @@ struct _GArchInstruction
{
GObject parent; /* A laisser en premier */
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
/**
* L'inclusion des informations suivantes dépend de l'architecture.
@@ -162,7 +162,7 @@ struct _GArchInstructionClass
* Accès aux informations éventuellement déportées.
*/
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
# define GET_ARCH_INSTR_EXTRA(ins) (instr_extra_data_t *)&ins->extra
diff --git a/src/arch/instructions/undefined-int.h b/src/arch/instructions/undefined-int.h
index 491ec31..a9b7627 100644
--- a/src/arch/instructions/undefined-int.h
+++ b/src/arch/instructions/undefined-int.h
@@ -73,9 +73,9 @@ struct _GUndefInstructionClass
* Accès aux informations éventuellement déportées.
*/
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
-# define GET_UNDEF_INSTR_EXTRA(ins) (undef_extra_data_t *)&ins->extra
+# define GET_UNDEF_INSTR_EXTRA(ins) ((undef_extra_data_t *)&((GArchInstruction *)ins)->extra)
#else
diff --git a/src/arch/operand-int.h b/src/arch/operand-int.h
index d424e94..e78c2b0 100644
--- a/src/arch/operand-int.h
+++ b/src/arch/operand-int.h
@@ -88,7 +88,7 @@ struct _GArchOperand
{
GObject parent; /* A laisser en premier */
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
/**
* L'inclusion des informations suivantes dépend de l'architecture.
@@ -129,7 +129,7 @@ struct _GArchOperandClass
* Accès aux informations éventuellement déportées.
*/
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
# define GET_ARCH_OP_EXTRA(op) (operand_extra_data_t *)&op->extra
diff --git a/src/arch/operands/immediate-int.h b/src/arch/operands/immediate-int.h
index 46bc3ce..d2313f5 100644
--- a/src/arch/operands/immediate-int.h
+++ b/src/arch/operands/immediate-int.h
@@ -70,9 +70,9 @@ struct _GImmOperandClass
* Accès aux informations éventuellement déportées.
*/
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
-# define GET_IMM_OP_EXTRA(op) (immop_extra_data_t *)&op->extra
+# define GET_IMM_OP_EXTRA(op) ((immop_extra_data_t *)&((GArchOperand *)op)->extra)
#else
diff --git a/src/arch/operands/known.c b/src/arch/operands/known.c
index a4b3844..152bdac 100644
--- a/src/arch/operands/known.c
+++ b/src/arch/operands/known.c
@@ -292,12 +292,12 @@ GArchOperand *g_known_imm_operand_new(const GImmOperand *old, const char *alt)
static int g_known_imm_operand_compare(const GKnownImmOperand *a, const GKnownImmOperand *b, bool lock)
{
int result; /* Bilan à retourner */
- lockable_obj_extra_t *ea; /* Données insérées à consulter*/
- lockable_obj_extra_t *eb; /* Données insérées à consulter*/
+ immop_extra_data_t *ea; /* Données insérées à consulter*/
+ immop_extra_data_t *eb; /* Données insérées à consulter*/
GArchOperandClass *class; /* Classe parente normalisée */
- ea = GET_GOBJECT_EXTRA(G_OBJECT(a), lockable_obj_extra_t);
- eb = GET_GOBJECT_EXTRA(G_OBJECT(b), lockable_obj_extra_t);
+ ea = GET_IMM_OP_EXTRA(G_IMM_OPERAND(a));
+ eb = GET_IMM_OP_EXTRA(G_IMM_OPERAND(b));
if (lock)
{
@@ -364,10 +364,10 @@ static void g_known_imm_operand_print(const GKnownImmOperand *operand, GBufferLi
static guint g_known_imm_operand_hash(const GKnownImmOperand *operand, bool lock)
{
guint result; /* Valeur à retourner */
- lockable_obj_extra_t *extra; /* Données insérées à consulter*/
+ immop_extra_data_t *extra; /* Données insérées à consulter*/
GArchOperandClass *class; /* Classe parente normalisée */
- extra = GET_GOBJECT_EXTRA(G_OBJECT(operand), lockable_obj_extra_t);
+ extra = GET_IMM_OP_EXTRA(G_IMM_OPERAND(operand));
if (lock)
LOCK_GOBJECT_EXTRA(extra);
diff --git a/src/arch/operands/proxy.c b/src/arch/operands/proxy.c
index 91690a7..c71f96f 100644
--- a/src/arch/operands/proxy.c
+++ b/src/arch/operands/proxy.c
@@ -241,12 +241,12 @@ GProxyFeeder *g_proxy_operand_get_feeder(const GProxyOperand *operand)
static int g_proxy_operand_compare(const GProxyOperand *a, const GProxyOperand *b, bool lock)
{
int result; /* Bilan à retourner */
- lockable_obj_extra_t *ea; /* Données insérées à consulter*/
- lockable_obj_extra_t *eb; /* Données insérées à consulter*/
+ operand_extra_data_t *ea; /* Données insérées à consulter*/
+ operand_extra_data_t *eb; /* Données insérées à consulter*/
GArchOperandClass *class; /* Classe parente normalisée */
- ea = GET_GOBJECT_EXTRA(G_OBJECT(a), lockable_obj_extra_t);
- eb = GET_GOBJECT_EXTRA(G_OBJECT(b), lockable_obj_extra_t);
+ ea = GET_ARCH_OP_EXTRA(G_ARCH_OPERAND(a));
+ eb = GET_ARCH_OP_EXTRA(G_ARCH_OPERAND(b));
if (lock)
{
@@ -309,10 +309,10 @@ static void g_proxy_operand_print(const GProxyOperand *operand, GBufferLine *lin
static guint g_proxy_operand_hash(const GProxyOperand *operand, bool lock)
{
guint result; /* Valeur à retourner */
- lockable_obj_extra_t *extra; /* Données insérées à consulter*/
+ operand_extra_data_t *extra; /* Données insérées à consulter*/
GArchOperandClass *class; /* Classe parente normalisée */
- extra = GET_GOBJECT_EXTRA(G_OBJECT(operand), lockable_obj_extra_t);
+ extra = GET_ARCH_OP_EXTRA(G_ARCH_OPERAND(operand));
if (lock)
LOCK_GOBJECT_EXTRA(extra);
diff --git a/src/arch/operands/target-int.h b/src/arch/operands/target-int.h
index ac4cdcd..aa48b2b 100644
--- a/src/arch/operands/target-int.h
+++ b/src/arch/operands/target-int.h
@@ -65,9 +65,9 @@ struct _GTargetOperandClass
* Accès aux informations éventuellement déportées.
*/
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
-# define GET_TARGET_OP_EXTRA(op) (tarop_extra_data_t *)&op->extra
+# define GET_TARGET_OP_EXTRA(op) ((tarop_extra_data_t *)&((GArchOperand *)op)->extra)
#else
diff --git a/src/format/format-int.h b/src/format/format-int.h
index 11505d0..3e6ae3e 100644
--- a/src/format/format-int.h
+++ b/src/format/format-int.h
@@ -77,7 +77,7 @@ struct _GBinFormat
{
GKnownFormat parent; /* A laisser en premier */
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
/**
* L'inclusion des informations suivantes dépend de l'architecture.
@@ -135,7 +135,7 @@ struct _GBinFormatClass
* Accès aux informations éventuellement déportées.
*/
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
# define GET_BIN_FORMAT_EXTRA(fmt) (fmt_extra_data_t *)&fmt->extra
diff --git a/src/format/symbol-int.h b/src/format/symbol-int.h
index 7f8bb7f..48a27ed 100644
--- a/src/format/symbol-int.h
+++ b/src/format/symbol-int.h
@@ -67,7 +67,7 @@ struct _GBinSymbol
{
GObject parent; /* A laisser en premier */
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
/**
* L'inclusion des informations suivantes dépend de l'architecture.
@@ -103,7 +103,7 @@ struct _GBinSymbolClass
* Accès aux informations éventuellement déportées.
*/
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
# define GET_BIN_SYMBOL_EXTRA(sym) (sym_extra_data_t *)&sym->extra
diff --git a/src/glibext/objhole.h b/src/glibext/objhole.h
index c256cfb..38f4bd5 100644
--- a/src/glibext/objhole.h
+++ b/src/glibext/objhole.h
@@ -43,11 +43,33 @@
* GData *qdata;
* };
*
- * L'espace entre les deux derniers champs est exploité ici.
+ * En revanche, le fichier "glib/gobject/gobject.c" précise la définition
+ * réelle de la structure selon l'environnement :
+ *
+ * #if SIZEOF_INT == 4 && GLIB_SIZEOF_VOID_P == 8
+ * #define HAVE_OPTIONAL_FLAGS
+ * #endif
+ *
+ * typedef struct
+ * {
+ * GTypeInstance g_type_instance;
+ * guint ref_count;
+ * #ifdef HAVE_OPTIONAL_FLAGS
+ * guint optional_flags;
+ * #endif
+ * GData *qdata;
+ * } GObjectReal;
+ *
+ * G_STATIC_ASSERT(sizeof(GObject) == sizeof(GObjectReal));
+ * G_STATIC_ASSERT(G_STRUCT_OFFSET(GObject, ref_count) == G_STRUCT_OFFSET(GObjectReal, ref_count));
+ * G_STATIC_ASSERT(G_STRUCT_OFFSET(GObject, qdata) == G_STRUCT_OFFSET(GObjectReal, qdata));
+ *
+ * L'espace entre les deux derniers champs ne peut donc être pleinement exploité deux fois.
*/
+#if 0
-#define GET_GOBJECT_EXTRA(obj, tp) \
+# define GET_GOBJECT_EXTRA(obj, tp) \
({ \
BUILD_BUG_ON(sizeof(tp) > sizeof(guint)); \
tp *___result; \
@@ -56,6 +78,8 @@
___result; \
})
+#endif
+
/**
* Choix du bit de verrou pour le champ "lock".