mirror of
https://github.com/radareorg/radare2.git
synced 2024-11-30 00:20:52 +00:00
* Propagate two arguments for conditionals
* Rename RLFList to ROFList (25.2% funnier than before)
This commit is contained in:
parent
c8da941768
commit
5399367daa
5
TODO
5
TODO
@ -8,10 +8,9 @@
|
||||
VERY IMPORTANT
|
||||
==============
|
||||
* trace counts after step..thats not correct!
|
||||
* implement GMP in util/big.c
|
||||
* pancake: fix RAnalCond because jz is not only !eax.. comparision doesnt works
|
||||
* pancake: implement RAnalCall (analyze function arguments, return values, propagate types..)
|
||||
* nibble: rename characteristics into srwx
|
||||
* implement GMP in util/big.c
|
||||
* pancake: implement RAnalCall (analyze function arguments, return values, propagate types..)
|
||||
* Visual byte cursor in disassembly
|
||||
* Write manpages for r2, r2rc, r2rc-tool, rafind2 and rasign2
|
||||
* Implement C command as in r1 (same for visual..define strings, hexdumps, etc..)
|
||||
|
@ -55,6 +55,8 @@ R_API RAnalCond *r_anal_cond_new_from_aop(RAnalOp *op) {
|
||||
//v->reg[1] = op->src[1];
|
||||
cond->arg[0] = op->src[0];
|
||||
op->src[0] = NULL;
|
||||
cond->arg[1] = op->src[1];
|
||||
op->src[1] = NULL;
|
||||
// TODO: moar!
|
||||
//cond->arg[1] = op->src[1];
|
||||
return cond;
|
||||
|
@ -16,11 +16,11 @@ typedef struct r_list_t {
|
||||
RListFree free;
|
||||
} RList;
|
||||
|
||||
#define RListFList_Parent RList
|
||||
typedef struct r_lflist_t {
|
||||
RListFList_Parent super; // super class
|
||||
RFList *list;
|
||||
} RLFList;
|
||||
#define ROFList_Parent RList
|
||||
typedef struct r_oflist_t {
|
||||
ROFList_Parent super; // super class
|
||||
RFList *array; // statical readonly cache of linked list as a pointer array
|
||||
} ROFList;
|
||||
|
||||
#ifdef R_API
|
||||
#define r_list_foreach(list, it, pos) \
|
||||
@ -50,17 +50,17 @@ R_API void r_list_split (RList *list, void *ptr);
|
||||
R_API void r_list_split_iter (RList *list, RListIter *iter);
|
||||
|
||||
/* rlistflist */
|
||||
#define r_lflist_new(x)
|
||||
#define r_lflist_length(x,y) r_list_length(x,y)
|
||||
#define r_lflist_destroy(x) r_lflist_deserialize(x), r_list_destroy(x)
|
||||
#define r_lflist_free(x) r_lflist_deserialize(x), r_list_free(x)
|
||||
#define r_lflist_append(x,y) r_lflist_deserialize(x), r_list_append(x,y)
|
||||
#define r_lflist_prepend(x,y) r_lflist_deserialize(x), r_list_prepend(x,y)
|
||||
#define r_lflist_delete(x,y) r_lflist_deserialize(x), r_list_delete(x,y)
|
||||
#define r_lflist_array(x) x->array?x->array:(x->array=r_lflist_serialize(x)),x->array
|
||||
#define r_lflist_deserialize(x) \
|
||||
// TODO: rename to init or so.. #define r_oflist_new() R_NEW(ROFList);memset
|
||||
#define r_oflist_length(x,y) r_list_length(x,y)
|
||||
#define r_oflist_destroy(x) r_oflist_deserialize(x), r_list_destroy(x)
|
||||
#define r_oflist_free(x) r_oflist_deserialize(x), r_list_free(x)
|
||||
#define r_oflist_append(x,y) r_oflist_deserialize(x), r_list_append(x,y)
|
||||
#define r_oflist_prepend(x,y) r_oflist_deserialize(x), r_list_prepend(x,y)
|
||||
#define r_oflist_delete(x,y) r_oflist_deserialize(x), r_list_delete(x,y)
|
||||
#define r_oflist_array(x) x->array?x->array:(x->array=r_oflist_serialize(x)),x->array
|
||||
#define r_oflist_deserialize(x) \
|
||||
free(x->array-1),x->array=0
|
||||
#define r_lflist_serialize(x) \
|
||||
#define r_oflist_serialize(x) \
|
||||
x->array = r_flist_new(r_list_length(x)), { \
|
||||
int idx = 0; \
|
||||
void *ptr; \
|
||||
|
Loading…
Reference in New Issue
Block a user