diff options
Diffstat (limited to 'src/arch/processor.c')
-rw-r--r-- | src/arch/processor.c | 48 |
1 files changed, 38 insertions, 10 deletions
diff --git a/src/arch/processor.c b/src/arch/processor.c index 7dbd8eb..59af6cd 100644 --- a/src/arch/processor.c +++ b/src/arch/processor.c @@ -290,7 +290,10 @@ char *g_arch_processor_get_key(const GArchProcessor *proc) class = G_ARCH_PROCESSOR_GET_CLASS(proc); if (class->get_key == NULL) + { + assert(false); result = NULL; + } else result = class->get_key(proc); @@ -312,14 +315,21 @@ char *g_arch_processor_get_key(const GArchProcessor *proc) * * ******************************************************************************/ -const char *g_arch_processor_get_desc(const GArchProcessor *proc) +char *g_arch_processor_get_desc(const GArchProcessor *proc) { - const char *result; /* Désignation à renvoyer */ + char *result; /* Désignation à renvoyer */ GArchProcessorClass *class; /* Classe de l'instance */ class = G_ARCH_PROCESSOR_GET_CLASS(proc); - result = class->desc; + if (class->get_desc == NULL) + { + assert(false); + result = NULL; + } + + else + result = class->get_desc(proc); return result; @@ -341,11 +351,8 @@ const char *g_arch_processor_get_desc(const GArchProcessor *proc) SourceEndian g_arch_processor_get_endianness(const GArchProcessor *proc) { SourceEndian result; /* Boutisme à retourner */ - GArchProcessorClass *class; /* Classe de l'instance */ - class = G_ARCH_PROCESSOR_GET_CLASS(proc); - - result = class->endianness; + result = proc->endianness; return result; @@ -371,7 +378,14 @@ MemoryDataSize g_arch_processor_get_memory_size(const GArchProcessor *proc) class = G_ARCH_PROCESSOR_GET_CLASS(proc); - result = class->memsize; + if (class->get_memsize == NULL) + { + assert(false); + result = MDS_UNDEFINED; + } + + else + result = class->get_memsize(proc); return result; @@ -397,7 +411,14 @@ MemoryDataSize g_arch_processor_get_instruction_min_size(const GArchProcessor *p class = G_ARCH_PROCESSOR_GET_CLASS(proc); - result = class->inssize; + if (class->get_inssize == NULL) + { + assert(false); + result = MDS_UNDEFINED; + } + + else + result = class->get_inssize(proc); return result; @@ -423,7 +444,14 @@ bool g_arch_processor_has_virtual_space(const GArchProcessor *proc) class = G_ARCH_PROCESSOR_GET_CLASS(proc); - result = class->virt_space; + if (class->has_vspace == NULL) + { + assert(false); + result = false; + } + + else + result = class->has_vspace(proc); return result; |