diff options
Diffstat (limited to 'src/format/dex/class.c')
-rw-r--r-- | src/format/dex/class.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/format/dex/class.c b/src/format/dex/class.c index 3822546..897720a 100644 --- a/src/format/dex/class.c +++ b/src/format/dex/class.c @@ -248,16 +248,19 @@ GDexClass *g_dex_class_new(GDexFormat *format, const class_def_item *def) result->direct_methods[i] = method; /* Ajout à la liste des symboles */ + if (g_dex_method_has_dex_body(method)) + { + routine = g_dex_method_get_routine(method); - routine = g_dex_method_get_routine(method); + g_object_ref(G_OBJECT(ctype)); + g_binary_routine_set_namespace(routine, ctype, "."); - g_object_ref(G_OBJECT(ctype)); - g_binary_routine_set_namespace(routine, ctype, "."); + symbol = g_binary_symbol_new(STP_ROUTINE); + g_binary_symbol_attach_routine(symbol, routine); - symbol = g_binary_symbol_new(STP_ROUTINE); - g_binary_symbol_attach_routine(symbol, routine); + g_binary_format_add_symbol(G_BIN_FORMAT(format), symbol); - g_binary_format_add_symbol(G_BIN_FORMAT(format), symbol); + } } @@ -274,16 +277,19 @@ GDexClass *g_dex_class_new(GDexFormat *format, const class_def_item *def) result->virtual_methods[i] = method; /* Ajout à la liste des symboles */ + if (g_dex_method_has_dex_body(method)) + { + routine = g_dex_method_get_routine(method); - routine = g_dex_method_get_routine(method); + g_object_ref(G_OBJECT(ctype)); + g_binary_routine_set_namespace(routine, ctype, "."); - g_object_ref(G_OBJECT(ctype)); - g_binary_routine_set_namespace(routine, ctype, "."); + symbol = g_binary_symbol_new(STP_ROUTINE); + g_binary_symbol_attach_routine(symbol, routine); - symbol = g_binary_symbol_new(STP_ROUTINE); - g_binary_symbol_attach_routine(symbol, routine); + g_binary_format_add_symbol(G_BIN_FORMAT(format), symbol); - g_binary_format_add_symbol(G_BIN_FORMAT(format), symbol); + } } |