コード例 #1
0
ファイル: labels.c プロジェクト: AnwarMohamed/radare2
R_API int r_anal_fcn_label_del (RAnal *anal, RAnalFunction *fcn, const char *name, ut64 addr) {
	if (!anal || !fcn || !name)
		return R_FALSE;
	sdb_array_remove (DB, LABELS, ADDRLABEL (addr, name), 0);
	sdb_unset (DB, LABEL(name), 0);
	sdb_unset (DB, ADDR(addr), 0);
	return R_TRUE;
}
コード例 #2
0
ファイル: test_array.c プロジェクト: ret2libc/sdb
bool test_sdb_array_add_remove(void) {
	Sdb *db = sdb_new (NULL, NULL, false);
	sdb_array_add (db, "foo", "foo", 0);
	sdb_array_add (db, "foo", "bar", 0);
	sdb_array_add (db, "foo", "cow", 0);

	mu_assert_streq (sdb_const_get (db, "foo", 0), "foo,bar,cow", "Not all items found");

	sdb_array_remove (db, "foo", "bar", 0);
	mu_assert_streq (sdb_const_get (db, "foo", 0), "foo,cow", "bar was not deleted");
	sdb_array_remove (db, "foo", "nothing", 0);
	mu_assert_streq (sdb_const_get (db, "foo", 0), "foo,cow", "nothing should be deleted");
	sdb_array_remove (db, "foo", "cow", 0);
	sdb_array_remove (db, "foo", "foo", 0);
	mu_assert_eq ((int)(size_t)sdb_const_get (db, "foo", 0), (int)(size_t)NULL, "all elements should be deleted");

	sdb_free (db);
	mu_end;
}
コード例 #3
0
ファイル: var.c プロジェクト: 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;
}