From 2dd2099b9f4d238aa7804e07bc594b5fba06e813 Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Wed, 17 Jan 2018 21:13:15 +0100
Subject: Cleaned the definition of architecture processors.

---
 ChangeLog                  | 12 ++++++++++++
 plugins/arm/v7/processor.c |  9 ++-------
 plugins/dalvik/processor.c |  6 +++---
 src/arch/processor-int.h   | 36 +++---------------------------------
 src/arch/processor.c       |  7 +++++--
 5 files changed, 25 insertions(+), 45 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c0d10ac..234df1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+18-01-17  Cyrille Bagard <nocbos@gmail.com>
+
+	* plugins/arm/v7/processor.c:
+	* plugins/dalvik/processor.c:
+	Update code.
+
+	* src/arch/processor-int.h:
+	Clean the definition of architecture processors.
+
+	* src/arch/processor.c:
+	Update code.
+
 18-01-16  Cyrille Bagard <nocbos@gmail.com>
 
 	* configure.ac:
diff --git a/plugins/arm/v7/processor.c b/plugins/arm/v7/processor.c
index 4295b51..5bbe808 100644
--- a/plugins/arm/v7/processor.c
+++ b/plugins/arm/v7/processor.c
@@ -101,6 +101,8 @@ static void g_armv7_processor_class_init(GArmV7ProcessorClass *klass)
     object_class->dispose = (GObjectFinalizeFunc/* ! */)g_armv7_processor_dispose;
     object_class->finalize = (GObjectFinalizeFunc)g_armv7_processor_finalize;
 
+    proc->get_ctx = (get_processor_context_fc)g_armv7_processor_get_context;
+
     proc->disassemble = (disass_instr_fc)g_armv7_processor_disassemble;
 
 }
@@ -120,7 +122,6 @@ static void g_armv7_processor_class_init(GArmV7ProcessorClass *klass)
 
 static void g_armv7_processor_init(GArmV7Processor *proc)
 {
-
     GArchProcessor *parent;                 /* Instance parente            */
 
     parent = G_ARCH_PROCESSOR(proc);
@@ -129,12 +130,6 @@ static void g_armv7_processor_init(GArmV7Processor *proc)
     parent->memsize = MDS_32_BITS;
     parent->inssize = MDS_32_BITS;
 
-
-
-
-    parent->get_ctx = (get_processor_context_fc)g_armv7_processor_get_context;
-
-
 }
 
 
diff --git a/plugins/dalvik/processor.c b/plugins/dalvik/processor.c
index 16d6644..ff8b805 100644
--- a/plugins/dalvik/processor.c
+++ b/plugins/dalvik/processor.c
@@ -110,6 +110,9 @@ static void g_dalvik_processor_class_init(GDalvikProcessorClass *klass)
 
     proc = G_ARCH_PROCESSOR_CLASS(klass);
 
+    proc->get_ctx = (get_processor_context_fc)g_dalvik_processor_get_context;
+    //proc->get_dec_ctx = (get_decomp_context_fc)g_dalvik_processor_get_decomp_context;
+
     proc->disassemble = (disass_instr_fc)g_dalvik_processor_disassemble;
 
 }
@@ -137,9 +140,6 @@ static void g_dalvik_processor_init(GDalvikProcessor *proc)
     parent->memsize = MDS_32_BITS;
     parent->inssize = MDS_16_BITS;
 
-    parent->get_ctx = (get_processor_context_fc)g_dalvik_processor_get_context;
-    //parent->get_dec_ctx = (get_decomp_context_fc)g_dalvik_processor_get_decomp_context;
-
 }
 
 
diff --git a/src/arch/processor-int.h b/src/arch/processor-int.h
index a308bb8..00152c7 100644
--- a/src/arch/processor-int.h
+++ b/src/arch/processor-int.h
@@ -25,29 +25,14 @@
 #define _ARCH_PROCESSOR_INT_H
 
 
-
-
-
-
-/* TODO : nettoyer ! */
-
-#include <stdint.h>
-#include <sys/types.h>
-
-
-#include "operand.h"        /* TODO: AsmSyntax ? */
-#include "instruction.h"
 #include "processor.h"
 
 
 
-
-
 /* Taille des pré-allocations pour les instructions */
 #define COV_ALLOC_BLOCK 100
 
 
-
 /* Fournit un contexte propre au processeur d'une architecture. */
 typedef GProcContext * (* get_processor_context_fc) (const GArchProcessor *);
 
@@ -58,7 +43,6 @@ typedef GProcContext * (* get_processor_context_fc) (const GArchProcessor *);
 typedef GArchInstruction * (* disass_instr_fc) (const GArchProcessor *, GProcContext *, const GBinContent *, vmpa2t *, GExeFormat *);
 
 
-
 /* Description d'une erreur */
 typedef struct _proc_error
 {
@@ -89,9 +73,6 @@ struct _GArchProcessor
     MemoryDataSize memsize;                 /* Taille de l'espace mémoire  */
     MemoryDataSize inssize;                 /* Taille min. d'encodage      */
 
-    get_processor_context_fc get_ctx;       /* Obtention d'un contexte #1  */
-    //get_decomp_context_fc get_dec_ctx;      /* Obtention d'un contexte #2  */
-
     GArchInstruction **instructions;        /* Instructions désassemblées  */
     size_t instr_count;                     /* Taille de la liste aplatie  */
     unsigned int stamp;                     /* Marque de suivi des modifs  */
@@ -113,29 +94,18 @@ struct _GArchProcessor
 
 };
 
-
-
-
-
-
-
 /* Définition générique d'un processeur d'architecture (classe) */
 struct _GArchProcessorClass
 {
     GObjectClass parent;                    /* A laisser en premier        */
 
+    get_processor_context_fc get_ctx;       /* Obtention d'un contexte #1  */
+    //get_decomp_context_fc get_dec_ctx;      /* Obtention d'un contexte #2  */
+
     disass_instr_fc disassemble;            /* Traduction en instructions  */
 
 };
 
 
 
-
-#define SKIPPED_INSTR ((void *)-1)
-
-
-
-
-
-
 #endif  /* _ARCH_PROCESSOR_INT_H */
diff --git a/src/arch/processor.c b/src/arch/processor.c
index 78ded34..c08e8da 100644
--- a/src/arch/processor.c
+++ b/src/arch/processor.c
@@ -218,9 +218,12 @@ static void g_arch_processor_finalize(GArchProcessor *proc)
 GProcContext *g_arch_processor_get_context(const GArchProcessor *proc)
 {
     GProcContext *result;                   /* Contexte à retourner        */
+    GArchProcessorClass *class;             /* Classe de l'instance active */
 
-    if (proc->get_ctx != NULL)
-        result = proc->get_ctx(proc);
+    class = G_ARCH_PROCESSOR_GET_CLASS(proc);
+
+    if (class->get_ctx != NULL)
+        result = class->get_ctx(proc);
 
     else
         result = NULL;
-- 
cgit v0.11.2-87-g4458