Esempio n. 1
0
File: var.c Progetto: earada/radare2
R_API int r_anal_var_delete (RAnal *a, ut64 var_addr, const char kind, int scope, int delta) {
	if (scope>0) {
		// TODO
	} else {
		// TODO
	}
	r_anal_var_access_clear (a, var_addr, scope, delta);
	return R_TRUE;
}
Esempio n. 2
0
File: var.c Progetto: fungos/radare2
R_API int r_anal_var_delete (RAnal *a, ut64 addr, const char kind, int scope, int delta) {
    if (delta<0)
        delta = -delta;
    RAnalVar *av = r_anal_var_get (a, addr, kind, scope, delta);
    if (scope>0) {
        char *fcn_key = sdb_fmt (1, "fcn.0x%"PFMT64x".%c", addr, kind);
        char *var_key = sdb_fmt (2, "var.0x%"PFMT64x".%c.%d.%d", addr, kind, scope, delta);
        char *name_key = sdb_fmt (3, "var.0x%"PFMT64x".%c.%d.%s", addr, kind, scope, av->name);
        char *shortvar = sdb_fmt (4, "%d.%d", scope, delta);
        sdb_array_remove (DB, fcn_key, shortvar, 0);
        sdb_unset (DB, var_key, 0);
        sdb_unset (DB, name_key, 0);
    } else {
        char *var_global = sdb_fmt (1, "var.0x%"PFMT64x, addr);
        char *var_def = sdb_fmt (2,"%c.%s,%d,%s", kind, av->type, av->size, av->name);
        sdb_array_remove (DB, var_global, var_def, 0);
    }
    r_anal_var_access_clear (a, addr, scope, delta);
    return true;
}