R_API RAnalState * r_anal_state_new (ut64 start, ut8* buffer, ut64 len) { RAnalState *state = R_NEW0 (RAnalState); state->start = start; state->end = start + len; state->buffer = buffer; state->len = len; state->current_op = NULL; state->current_bb = NULL; state->current_fcn = NULL; state->ht = r_hashtable64_new(); state->ht_sz = 512; state->bbs = r_list_new(); state->max_depth = 50; state->current_depth = 0; //r_hashtable64_rehash(state->ht, state->ht_sz); return state; }
R_API int r_mixed_key(RMixed *m, int key, int size) { if (size>0 && r_mixed_key_check (m, key, size)) { if (m->keys[key]) { m->keys[key]->size = size; } else { m->keys[key] = R_NEW (RMixedData); if (!m->keys[key]) return false; m->keys[key]->size = size; switch (size) { case 1: case 2: case 4: m->keys[key]->hash.ht = r_hashtable_new (); return true; case 8: m->keys[key]->hash.ht64 = r_hashtable64_new (); return true; } } } return false; }
R_API RAnalState * r_anal_state_new(ut64 start, ut8* buffer, ut64 len) { RAnalState *state = R_NEW0 (RAnalState); if (!state) { return NULL; } state->start = start; state->end = start + len; state->buffer = buffer; state->len = len; state->current_op = NULL; state->current_bb = NULL; state->current_fcn = NULL; state->ht = r_hashtable64_new(); state->ht->free = (RHashFree)r_anal_bb_free; state->ht_sz = 512; state->bbs = r_list_newf ((RListFree)r_anal_bb_free); state->max_depth = 50; state->current_depth = 0; return state; }