R_BIN_NM -> R_BIN_LANG ##api

This commit is contained in:
pancake 2022-10-07 15:40:47 +02:00 committed by pancake
parent 34b0caa32d
commit d0de591dc7
14 changed files with 116 additions and 116 deletions

View File

@ -1077,7 +1077,7 @@ R_API RBinSymbol *r_bin_file_add_method(RBinFile *bf, const char *klass, const c
R_LOG_ERROR ("Cannot allocate class %s", klass);
return NULL;
}
int lang = (strstr (method, "JNI") || strstr (klass, "JNI"))? R_BIN_NM_JNI: R_BIN_NM_CXX;
int lang = (strstr (method, "JNI") || strstr (klass, "JNI"))? R_BIN_LANG_JNI: R_BIN_LANG_CXX;
c->lang = lang;
RBinSymbol *sym = __getMethod (bf, klass, method);
if (!sym) {
@ -1095,7 +1095,7 @@ R_API RBinSymbol *r_bin_file_add_method(RBinFile *bf, const char *klass, const c
}
R_API RBinField *r_bin_file_add_field(RBinFile *binfile, const char *classname, const char *name) {
R_LOG_ERROR ("TODO: RBinFile.addField() is not implemented");
R_LOG_TODO ("RBinFile.addField() is not implemented");
return NULL;
}

View File

@ -82,9 +82,9 @@ static inline bool check_pascal(RBinSymbol *sym) {
/* This is about 10% of the loading time, optimize if possible */
R_API int r_bin_load_languages(RBinFile *binfile) {
r_return_val_if_fail (binfile, R_BIN_NM_NONE);
r_return_val_if_fail (binfile->o, R_BIN_NM_NONE);
r_return_val_if_fail (binfile->o->info, R_BIN_NM_NONE);
r_return_val_if_fail (binfile, R_BIN_LANG_NONE);
r_return_val_if_fail (binfile->o, R_BIN_LANG_NONE);
r_return_val_if_fail (binfile->o->info, R_BIN_LANG_NONE);
RBinObject *o = binfile->o;
RBinInfo *info = o->info;
RBinSymbol *sym = NULL;
@ -105,7 +105,7 @@ R_API int r_bin_load_languages(RBinFile *binfile) {
bool isObjC = false;
if (unknownType || !(isMacho || isElf || isPe)) {
return R_BIN_NM_NONE;
return R_BIN_LANG_NONE;
}
// check in imports . can be slow
@ -124,12 +124,12 @@ R_API int r_bin_load_languages(RBinFile *binfile) {
if (!cantbe.rust) {
if (check_rust (sym)) {
info->lang = "rust";
return R_BIN_NM_RUST;
return R_BIN_LANG_RUST;
}
}
if (check_golang (sym)) {
info->lang = "go";
return R_BIN_NM_GO;
return R_BIN_LANG_GO;
}
if (!cantbe.swift) {
bool hasswift = false;
@ -144,7 +144,7 @@ R_API int r_bin_load_languages(RBinFile *binfile) {
}
if (hasswift || check_swift (sym)) {
info->lang = "swift";
return R_BIN_NM_SWIFT;
return R_BIN_LANG_SWIFT;
}
}
if (!cantbe.cxx) {
@ -158,7 +158,7 @@ R_API int r_bin_load_languages(RBinFile *binfile) {
}
if (strstr (lib, "msvcp")) {
info->lang = "msvc";
return R_BIN_NM_MSVC;
return R_BIN_LANG_MSVC;
}
}
cxxIsChecked = true;
@ -171,7 +171,7 @@ R_API int r_bin_load_languages(RBinFile *binfile) {
if (!cantbe.objc) {
if (check_objc (sym)) {
info->lang = "objc";
return R_BIN_NM_OBJC;
return R_BIN_LANG_OBJC;
}
}
if (!cantbe.dlang) {
@ -187,7 +187,7 @@ R_API int r_bin_load_languages(RBinFile *binfile) {
}
if (hasdlang || check_dlang (sym)) {
info->lang = "dlang";
return R_BIN_NM_DLANG;
return R_BIN_LANG_DLANG;
}
}
if (!cantbe.msvc) {
@ -197,33 +197,33 @@ R_API int r_bin_load_languages(RBinFile *binfile) {
}
}
if (isObjC) {
return R_BIN_NM_OBJC | (isBlocks?R_BIN_NM_BLOCKS:0);
return R_BIN_LANG_OBJC | (isBlocks?R_BIN_LANG_BLOCKS:0);
}
if (sym) {
if (check_kotlin (sym)) {
info->lang = "kotlin";
return R_BIN_NM_KOTLIN;
return R_BIN_LANG_KOTLIN;
}
if (check_groovy (sym)) {
info->lang = "groovy";
return R_BIN_NM_GROOVY;
return R_BIN_LANG_GROOVY;
}
if (check_dart (sym)) {
info->lang = "dart";
return R_BIN_NM_DART;
return R_BIN_LANG_DART;
}
if (check_pascal (sym)) {
info->lang = "pascal";
return R_BIN_NM_PASCAL;
return R_BIN_LANG_PASCAL;
}
}
if (canBeCxx) {
return R_BIN_NM_CXX | (isBlocks?R_BIN_NM_BLOCKS:0);
return R_BIN_LANG_CXX | (isBlocks?R_BIN_LANG_BLOCKS:0);
}
if (isMsvc) {
return R_BIN_NM_MSVC;
return R_BIN_LANG_MSVC;
}
return R_BIN_NM_C | (isBlocks?R_BIN_NM_BLOCKS:0);
return R_BIN_LANG_C | (isBlocks?R_BIN_LANG_BLOCKS:0);
}
// if its ipi no need to be prefixed with r_
@ -231,11 +231,11 @@ R_IPI int r_bin_lang_type(RBinFile *binfile, const char *def, const char *sym) {
int type = 0;
RBinPlugin *plugin;
if (sym && sym[0] == sym[1] && sym[0] == '_') {
type = R_BIN_NM_CXX;
type = R_BIN_LANG_CXX;
}
if (def && *def) {
type = r_bin_demangle_type (def);
if (type != R_BIN_NM_NONE) {
if (type != R_BIN_LANG_NONE) {
return type;
}
}
@ -247,7 +247,7 @@ R_IPI int r_bin_lang_type(RBinFile *binfile, const char *def, const char *sym) {
type = r_bin_demangle_type (binfile->o->info->lang);
}
}
if (type == R_BIN_NM_NONE) {
if (type == R_BIN_LANG_NONE) {
type = r_bin_demangle_type (def);
}
return type;
@ -255,31 +255,31 @@ R_IPI int r_bin_lang_type(RBinFile *binfile, const char *def, const char *sym) {
R_API const char *r_bin_lang_tostring(int lang) {
switch (lang & 0xffff) {
case R_BIN_NM_SWIFT:
case R_BIN_LANG_SWIFT:
return "swift";
case R_BIN_NM_GO:
case R_BIN_LANG_GO:
return "go";
case R_BIN_NM_JAVA:
case R_BIN_LANG_JAVA:
return "java";
case R_BIN_NM_KOTLIN:
case R_BIN_LANG_KOTLIN:
return "kotlin";
case R_BIN_NM_DART:
case R_BIN_LANG_DART:
return "dart";
case R_BIN_NM_GROOVY:
case R_BIN_LANG_GROOVY:
return "groovy";
case R_BIN_NM_JNI:
case R_BIN_LANG_JNI:
return "jni";
case R_BIN_NM_C:
return (lang & R_BIN_NM_BLOCKS)? "c with blocks": "c";
case R_BIN_NM_CXX:
return (lang & R_BIN_NM_BLOCKS)? "c++ with blocks": "c++";
case R_BIN_NM_DLANG:
case R_BIN_LANG_C:
return (lang & R_BIN_LANG_BLOCKS)? "c with blocks": "c";
case R_BIN_LANG_CXX:
return (lang & R_BIN_LANG_BLOCKS)? "c++ with blocks": "c++";
case R_BIN_LANG_DLANG:
return "d";
case R_BIN_NM_OBJC:
return (lang & R_BIN_NM_BLOCKS)? "objc with blocks": "objc";
case R_BIN_NM_MSVC:
case R_BIN_LANG_OBJC:
return (lang & R_BIN_LANG_BLOCKS)? "objc with blocks": "objc";
case R_BIN_LANG_MSVC:
return "msvc";
case R_BIN_NM_RUST:
case R_BIN_LANG_RUST:
return "rust";
}
return "?";

View File

@ -417,7 +417,7 @@ R_API int r_bin_object_set_items(RBinFile *bf, RBinObject *bo) {
bo->mem = p->mem (bf);
}
if (bo->info && bin->filter_rules & (R_BIN_REQ_INFO | R_BIN_REQ_SYMBOLS | R_BIN_REQ_IMPORTS)) {
bo->lang = isSwift? R_BIN_NM_SWIFT: r_bin_load_languages (bf);
bo->lang = isSwift? R_BIN_LANG_SWIFT: r_bin_load_languages (bf);
}
return true;
}

View File

@ -50,40 +50,40 @@ R_API char *r_bin_demangle_plugin(RBin *bin, const char *name, const char *str)
R_API int r_bin_demangle_type(const char *str) {
if (str && *str) {
if (!strcmp (str, "swift")) {
return R_BIN_NM_SWIFT;
return R_BIN_LANG_SWIFT;
}
if (!strcmp (str, "java")) {
return R_BIN_NM_JAVA;
return R_BIN_LANG_JAVA;
}
if (!strcmp (str, "kotlin")) {
return R_BIN_NM_KOTLIN;
return R_BIN_LANG_KOTLIN;
}
if (!strcmp (str, "groovy")) {
return R_BIN_NM_GROOVY;
return R_BIN_LANG_GROOVY;
}
if (!strcmp (str, "dart")) {
return R_BIN_NM_DART;
return R_BIN_LANG_DART;
}
if (!strcmp (str, "objc")) {
return R_BIN_NM_OBJC;
return R_BIN_LANG_OBJC;
}
if (!strcmp (str, "pascal") || !strcmp (str, "freepascal")) {
return R_BIN_NM_PASCAL;
return R_BIN_LANG_PASCAL;
}
if (!strcmp (str, "cxx") || !strcmp (str, "c++")) {
return R_BIN_NM_CXX;
return R_BIN_LANG_CXX;
}
if (!strcmp (str, "dlang")) {
return R_BIN_NM_DLANG;
return R_BIN_LANG_DLANG;
}
if (!strcmp (str, "msvc")) {
return R_BIN_NM_MSVC;
return R_BIN_LANG_MSVC;
}
if (!strcmp (str, "rust")) {
return R_BIN_NM_RUST;
return R_BIN_LANG_RUST;
}
}
return R_BIN_NM_NONE;
return R_BIN_LANG_NONE;
}
R_API char *r_bin_demangle(RBinFile *bf, const char *def, const char *str, ut64 vaddr, bool libs) {
@ -131,9 +131,9 @@ R_API char *r_bin_demangle(RBinFile *bf, const char *def, const char *str, ut64
}
if (!strncmp (str, "__", 2)) {
if (str[2] == 'T') {
type = R_BIN_NM_SWIFT;
type = R_BIN_LANG_SWIFT;
} else {
type = R_BIN_NM_CXX;
type = R_BIN_LANG_CXX;
// str++;
}
}
@ -146,14 +146,14 @@ R_API char *r_bin_demangle(RBinFile *bf, const char *def, const char *str, ut64
}
char *demangled = NULL;
switch (type) {
case R_BIN_NM_JAVA: demangled = r_bin_demangle_java (str); break;
case R_BIN_NM_RUST: demangled = r_bin_demangle_rust (bf, str, vaddr); break;
case R_BIN_NM_OBJC: demangled = r_bin_demangle_objc (NULL, str); break;
case R_BIN_NM_SWIFT: demangled = r_bin_demangle_swift (str, bin? bin->demangle_usecmd: false, trylib); break;
case R_BIN_NM_CXX: demangled = r_bin_demangle_cxx (bf, str, vaddr); break;
case R_BIN_NM_PASCAL: demangled = r_bin_demangle_freepascal (str); break;
case R_BIN_NM_MSVC: demangled = r_bin_demangle_msvc (str); break;
case R_BIN_NM_DLANG: demangled = r_bin_demangle_plugin (bin, "dlang", str); break;
case R_BIN_LANG_JAVA: demangled = r_bin_demangle_java (str); break;
case R_BIN_LANG_RUST: demangled = r_bin_demangle_rust (bf, str, vaddr); break;
case R_BIN_LANG_OBJC: demangled = r_bin_demangle_objc (NULL, str); break;
case R_BIN_LANG_SWIFT: demangled = r_bin_demangle_swift (str, bin? bin->demangle_usecmd: false, trylib); break;
case R_BIN_LANG_CXX: demangled = r_bin_demangle_cxx (bf, str, vaddr); break;
case R_BIN_LANG_PASCAL: demangled = r_bin_demangle_freepascal (str); break;
case R_BIN_LANG_MSVC: demangled = r_bin_demangle_msvc (str); break;
case R_BIN_LANG_DLANG: demangled = r_bin_demangle_plugin (bin, "dlang", str); break;
}
if (libs && demangled && lib) {
char *d = r_str_newf ("%s_%s", lib, demangled);

View File

@ -2848,7 +2848,7 @@ const RList *MACH0_(get_symbols_list)(struct MACH0_(obj_t) *bin) {
if (!sym) {
break;
}
sym->lang = R_BIN_NM_C;
sym->lang = R_BIN_LANG_C;
sym->vaddr = symbol.addr;
sym->paddr = symbol.offset;
sym->name = symbol.name;

View File

@ -698,7 +698,7 @@ static void get_method_list_t(mach0_ut p, RBinFile *bf, char *class_name, RBinCl
method->rtype = strdup (rtype);
R_FREE (rtype);
}
method->lang = R_BIN_NM_OBJC;
method->lang = R_BIN_LANG_OBJC;
method->vaddr = m.imp;
if (!method->vaddr) {
R_FREE (method);
@ -1303,7 +1303,7 @@ static void parse_type(RList *list, RBinFile *bf, SwiftType st) {
RBinClass *klass = r_bin_class_new (typename, NULL, false);
// eprintf ("Type name (%s)\n", typename);
klass->addr = st.addr;
klass->lang = R_BIN_NM_SWIFT;
klass->lang = R_BIN_LANG_SWIFT;
// eprintf ("methods:\n");
if (st.members != UT64_MAX) {
ut8 buf[512];
@ -1330,7 +1330,7 @@ static void parse_type(RList *list, RBinFile *bf, SwiftType st) {
}
}
sym = r_bin_symbol_new (method_name, method_addr, method_addr);
sym->lang = R_BIN_NM_SWIFT;
sym->lang = R_BIN_LANG_SWIFT;
r_list_append (klass->methods, sym);
#if 0
// TODO. try to resolve the method name by symbol table or debug info
@ -1489,7 +1489,7 @@ RList *MACH0_(parse_classes)(RBinFile *bf, objc_cache_opt_info *oi) {
// retain just for debug
goto get_classes_error;
}
klass->lang = R_BIN_NM_OBJC;
klass->lang = R_BIN_LANG_OBJC;
if (!(klass->methods = r_list_new ())) {
// retain just for debug
goto get_classes_error;

View File

@ -1090,7 +1090,7 @@ static void parse_dex_class_fields(RBinFile *bf, RBinDexClass *c, RBinClass *cls
sym->name = r_str_replace (sym->name, "method.", "", 0);
r_str_replace_char (sym->name, ';', 0);
sym->paddr = sym->vaddr = total;
sym->lang = R_BIN_NM_JAVA;
sym->lang = R_BIN_LANG_JAVA;
sym->ordinal = (*sym_count)++;
if (dex->dexdump) {
@ -1369,7 +1369,7 @@ static void parse_dex_class_method(RBinFile *bf, RBinDexClass *c, RBinClass *cls
sym->vaddr = encoded_method_addr;
}
dex->code_from = R_MIN (dex->code_from, sym->paddr);
sym->lang = R_BIN_NM_JAVA;
sym->lang = R_BIN_LANG_JAVA;
sym->bind = ((MA & 1) == 1) ? R_BIN_BIND_GLOBAL_STR : R_BIN_BIND_LOCAL_STR;
sym->method_flags = get_method_flags (MA);
sym->ordinal = (*sym_count)++;
@ -1423,7 +1423,7 @@ static void parse_dex_class_method(RBinFile *bf, RBinDexClass *c, RBinClass *cls
} else {
sym->size = 0;
r_list_append (dex->methods_list, sym);
sym->lang = R_BIN_NM_JAVA;
sym->lang = R_BIN_LANG_JAVA;
r_list_append (cls->methods, sym);
}
if (MC > 0 && debug_info_off > 0 && dex->header.data_offset < debug_info_off &&
@ -1458,7 +1458,7 @@ static void parse_class(RBinFile *bf, RBinDexClass *c, int class_index, int *met
goto beach;
}
cls->name = dex_class_name (dex, c);
cls->lang = R_BIN_NM_JAVA;
cls->lang = R_BIN_LANG_JAVA;
if (!cls->name) {
goto beach;
}
@ -1724,7 +1724,7 @@ static bool dex_loadcode(RBinFile *bf) {
//XXX use r_buf API!!
sym->paddr = sym->vaddr = dex->header.method_offset + (sizeof (struct dex_method_t) * i) ;
sym->ordinal = sym_count++;
sym->lang = R_BIN_NM_JAVA;
sym->lang = R_BIN_LANG_JAVA;
r_list_append (dex->methods_list, sym);
r_strf_var (mname, 64, "method.%"PFMT64d, (ut64)i);
sdb_num_set (dex->mdb, mname, sym->paddr, 0);

View File

@ -152,7 +152,7 @@ static bool check_buffer(RBinFile *bf, RBuffer *b) {
}
static int retdemangle(const char *str) {
return R_BIN_NM_JAVA;
return R_BIN_LANG_JAVA;
}
static RBinAddr *binsym(RBinFile *bf, int sym) {

View File

@ -3554,7 +3554,7 @@ static int bin_classes(RCore *r, PJ *pj, int mode) {
if (bf && bf->o) {
if (IS_MODE_RAD (mode)) {
classdump_c (r, c);
} else if (bf->o->lang == R_BIN_NM_JAVA || (bf->o->info && bf->o->info->lang && strstr (bf->o->info->lang, "dalvik"))) {
} else if (bf->o->lang == R_BIN_LANG_JAVA || (bf->o->info && bf->o->info->lang && strstr (bf->o->info->lang, "dalvik"))) {
classdump_java (r, c);
} else {
classdump_objc (r, c);

View File

@ -96,14 +96,14 @@ static bool demangle_internal(RCore *core, const char *lang, const char *s) {
char *res = NULL;
int type = r_bin_demangle_type (lang);
switch (type) {
case R_BIN_NM_CXX: res = r_bin_demangle_cxx (core->bin->cur, s, 0); break;
case R_BIN_NM_JAVA: res = r_bin_demangle_java (s); break;
case R_BIN_NM_OBJC: res = r_bin_demangle_objc (NULL, s); break;
case R_BIN_NM_SWIFT: res = r_bin_demangle_swift (s, core->bin->demangle_usecmd, core->bin->demangle_trylib); break;
case R_BIN_NM_DLANG: res = r_bin_demangle_plugin (core->bin, "dlang", s); break;
case R_BIN_NM_MSVC: res = r_bin_demangle_msvc (s); break;
case R_BIN_NM_RUST: res = r_bin_demangle_rust (core->bin->cur, s, 0); break;
case R_BIN_NM_PASCAL: res = r_bin_demangle_freepascal (s); break;
case R_BIN_LANG_CXX: res = r_bin_demangle_cxx (core->bin->cur, s, 0); break;
case R_BIN_LANG_JAVA: res = r_bin_demangle_java (s); break;
case R_BIN_LANG_OBJC: res = r_bin_demangle_objc (NULL, s); break;
case R_BIN_LANG_SWIFT: res = r_bin_demangle_swift (s, core->bin->demangle_usecmd, core->bin->demangle_trylib); break;
case R_BIN_LANG_DLANG: res = r_bin_demangle_plugin (core->bin, "dlang", s); break;
case R_BIN_LANG_MSVC: res = r_bin_demangle_msvc (s); break;
case R_BIN_LANG_RUST: res = r_bin_demangle_rust (core->bin->cur, s, 0); break;
case R_BIN_LANG_PASCAL: res = r_bin_demangle_freepascal (s); break;
default:
r_bin_demangle_list (core->bin);
return true;

View File

@ -134,23 +134,23 @@ typedef enum {
// name mangling types
// TODO: Rename to R_BIN_LANG_
typedef enum {
R_BIN_NM_NONE = 0,
R_BIN_NM_JAVA = 1,
R_BIN_NM_C = 1<<1,
R_BIN_NM_GO = 1<<2,
R_BIN_NM_CXX = 1<<3,
R_BIN_NM_OBJC = 1<<4,
R_BIN_NM_SWIFT = 1<<5,
R_BIN_NM_DLANG = 1<<6,
R_BIN_NM_MSVC = 1<<7,
R_BIN_NM_RUST = 1<<8,
R_BIN_NM_KOTLIN = 1<<9,
R_BIN_NM_PASCAL = 1<<10,
R_BIN_NM_DART = 1<<11,
R_BIN_NM_GROOVY = 1<<12,
R_BIN_NM_JNI = 1U<<13,
R_BIN_NM_BLOCKS = 1U<<31,
R_BIN_NM_ANY = -1,
R_BIN_LANG_NONE = 0,
R_BIN_LANG_JAVA = 1,
R_BIN_LANG_C = 1<<1,
R_BIN_LANG_GO = 1<<2,
R_BIN_LANG_CXX = 1<<3,
R_BIN_LANG_OBJC = 1<<4,
R_BIN_LANG_SWIFT = 1<<5,
R_BIN_LANG_DLANG = 1<<6,
R_BIN_LANG_MSVC = 1<<7,
R_BIN_LANG_RUST = 1<<8,
R_BIN_LANG_KOTLIN = 1<<9,
R_BIN_LANG_PASCAL = 1<<10,
R_BIN_LANG_DART = 1<<11,
R_BIN_LANG_GROOVY = 1<<12,
R_BIN_LANG_JNI = 1U<<13,
R_BIN_LANG_BLOCKS = 1U<<31,
R_BIN_LANG_ANY = -1,
} RBinNameMangling;
typedef enum {

View File

@ -519,7 +519,7 @@ static int __lib_bin_ldr_dt(RLibPlugin *pl, void *p, void *u) {
static void setup_trylib_from_environment(RBin *bin, int type) {
bool trylib = false;
if (type == R_BIN_NM_SWIFT) {
if (type == R_BIN_LANG_SWIFT) {
trylib = true;
char *swiftlib = r_sys_getenv ("RABIN2_TRYLIB");
if (swiftlib) {
@ -534,12 +534,12 @@ static char *__demangleAs(RBin *bin, int type, const char *file) {
bool syscmd = bin->demangle_usecmd;
char *res = NULL;
switch (type) {
case R_BIN_NM_CXX: res = r_bin_demangle_cxx (NULL, file, 0); break;
case R_BIN_NM_JAVA: res = r_bin_demangle_java (file); break;
case R_BIN_NM_OBJC: res = r_bin_demangle_objc (NULL, file); break;
case R_BIN_NM_SWIFT: res = r_bin_demangle_swift (file, syscmd, bin->demangle_trylib); break;
case R_BIN_NM_MSVC: res = r_bin_demangle_msvc (file); break;
case R_BIN_NM_RUST: res = r_bin_demangle_rust (NULL, file, 0); break;
case R_BIN_LANG_CXX: res = r_bin_demangle_cxx (NULL, file, 0); break;
case R_BIN_LANG_JAVA: res = r_bin_demangle_java (file); break;
case R_BIN_LANG_OBJC: res = r_bin_demangle_objc (NULL, file); break;
case R_BIN_LANG_SWIFT: res = r_bin_demangle_swift (file, syscmd, bin->demangle_trylib); break;
case R_BIN_LANG_MSVC: res = r_bin_demangle_msvc (file); break;
case R_BIN_LANG_RUST: res = r_bin_demangle_rust (NULL, file, 0); break;
default:
R_LOG_ERROR ("Unsupported demangler");
break;

View File

@ -2772,7 +2772,7 @@ R_API RList *r_bin_java_enum_class_methods(RBinJavaObj *bin, ut16 class_idx) {
break;
}
sym->name = strdup (field->name);
sym->lang = R_BIN_NM_JAVA;
sym->lang = R_BIN_LANG_JAVA;
// func defintion
// sym->paddr = field->file_offset + bin->loadaddr;
// code implementation
@ -2885,7 +2885,7 @@ R_API RList *r_bin_java_get_classes(RBinJavaObj *bin) {
k->name = r_bin_java_get_this_class_name (bin);
k->super = r_bin_java_get_name_from_bin_cp_list (bin, bin->cf2.super_class);
k->index = (idx++);
k->lang = R_BIN_NM_JAVA;
k->lang = R_BIN_LANG_JAVA;
r_list_append (classes, k);
r_list_foreach (bin->cp_list, iter, cp_obj) {
if (cp_obj && cp_obj->tag == R_BIN_JAVA_CP_CLASS

View File

@ -7,7 +7,7 @@
#include <r_util/r_sys.h>
#include <r_util/r_sandbox.h>
static int demangle_type = R_BIN_NM_CXX;
static int demangle_type = R_BIN_LANG_CXX;
static void usage() {
printf (
@ -73,12 +73,12 @@ int LLVMFuzzerTestOneInput(const ut8 *data, size_t len) {
char *demangled = NULL;
// TODO: replace with r_bin_demangle
switch (demangle_type) {
case R_BIN_NM_JAVA: demangled = r_bin_demangle_java (str); break;
case R_BIN_NM_RUST: demangled = r_bin_demangle_rust (NULL, str, vaddr); break;
case R_BIN_NM_OBJC: demangled = r_bin_demangle_objc (NULL, str); break;
case R_BIN_NM_SWIFT: demangled = r_bin_demangle_swift (str, false, false); break;
case R_BIN_NM_CXX: demangled = r_bin_demangle_cxx (NULL, str, vaddr); break;
case R_BIN_NM_MSVC: demangled = r_bin_demangle_msvc (str); break;
case R_BIN_LANG_JAVA: demangled = r_bin_demangle_java (str); break;
case R_BIN_LANG_RUST: demangled = r_bin_demangle_rust (NULL, str, vaddr); break;
case R_BIN_LANG_OBJC: demangled = r_bin_demangle_objc (NULL, str); break;
case R_BIN_LANG_SWIFT: demangled = r_bin_demangle_swift (str, false, false); break;
case R_BIN_LANG_CXX: demangled = r_bin_demangle_cxx (NULL, str, vaddr); break;
case R_BIN_LANG_MSVC: demangled = r_bin_demangle_msvc (str); break;
default:
abort();
}
@ -86,7 +86,7 @@ int LLVMFuzzerTestOneInput(const ut8 *data, size_t len) {
free (str);
free (demangled);
if (demangle_type == R_BIN_NM_MSVC) {
if (demangle_type == R_BIN_LANG_MSVC) {
// Flush out globals
free (r_bin_demangle_msvc ("."));
}