summaryrefslogtreecommitdiff
path: root/src/format/mangling/demangler.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/mangling/demangler.c')
-rw-r--r--src/format/mangling/demangler.c43
1 files changed, 14 insertions, 29 deletions
diff --git a/src/format/mangling/demangler.c b/src/format/mangling/demangler.c
index 715b4e8..d103550 100644
--- a/src/format/mangling/demangler.c
+++ b/src/format/mangling/demangler.c
@@ -58,7 +58,7 @@ typedef struct _demangling_properties
/* Liste des décodeurs */
-static demangling_properties demanglers[DGT_COUNT] = {
+static demangling_properties demanglers[/*DGT_COUNT*/] = {
/*
[DGT_ITANIUM] = {
@@ -68,13 +68,14 @@ static demangling_properties demanglers[DGT_COUNT] = {
.demangle_type = (demangle_fc)NULL
},
*/
+ /*
[DGT_JAVA] = {
.can_demangle = (can_be_demangled_fc)NULL,
.create_context = (create_context_fc)g_java_dcontext_new,
.demangle_routine = (demangle_fc)NULL,
.demangle_type = (demangle_fc)demangle_java_type
}
-
+ */
};
@@ -93,6 +94,7 @@ static demangling_properties demanglers[DGT_COUNT] = {
GBinRoutine *try_to_demangle_routine(const char *desc)
{
+#if 0
GBinRoutine *result; /* Construction à remonter */
DemanglerType i; /* Boucle de parcours */
@@ -147,6 +149,9 @@ GBinRoutine *try_to_demangle_routine(const char *desc)
}
return result;
+#endif
+
+ return NULL;
}
@@ -164,24 +169,14 @@ GBinRoutine *try_to_demangle_routine(const char *desc)
* *
******************************************************************************/
-GBinRoutine *demangle_routine(DemanglerType type, const char *desc)
+GBinRoutine *demangle_routine(GType type, const char *desc)
{
GBinRoutine *result; /* Construction à remonter */
GDemanglingContext *context; /* Contexte pour le décodage */
- result = NULL;
- /*
- if (demangler->can_be_demangled(demangler, name))
- result = demangler->demangle_routine(demangler, name);
- */
+ context = g_object_new(type, NULL);
- context = demanglers[type].create_context();
-
- if (demanglers[type].demangle_routine(context, desc))
- {
- result = g_demangling_context_get_decoded_routine(context);
- g_object_ref(result);
- }
+ result = g_demangling_context_get_decoded_routine(context, desc);
g_object_unref(context);
@@ -203,24 +198,14 @@ GBinRoutine *demangle_routine(DemanglerType type, const char *desc)
* *
******************************************************************************/
-GDataType *demangle_type(DemanglerType type, const char *desc)
+GDataType *demangle_type(GType type, const char *desc)
{
- GDataType *result; /* Construction à remonter */
+ GBinRoutine *result; /* Construction à remonter */
GDemanglingContext *context; /* Contexte pour le décodage */
- result = NULL;
- /*
- if (demangler->can_be_demangled(demangler, name))
- result = demangler->demangle_routine(demangler, name);
- */
-
- context = demanglers[type].create_context();
+ context = g_object_new(type, NULL);
- if (demanglers[type].demangle_type(context, desc))
- {
- result = g_demangling_context_get_decoded_type(context);
- g_object_ref(result);
- }
+ result = g_demangling_context_get_decoded_type(context, desc);
g_object_unref(context);