summaryrefslogtreecommitdiff
path: root/src/format/dex/class.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/dex/class.c')
-rw-r--r--src/format/dex/class.c30
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);
+ }
}