summaryrefslogtreecommitdiff
path: root/src/arch/processor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/processor.c')
-rw-r--r--src/arch/processor.c48
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;