do not use struct function pointers elsewhere, use them only in case
when polymorphysm needed
This commit is contained in:
@@ -30,16 +30,6 @@ void pst_dwarf_op_fini(pst_dwarf_op* dwop);
|
||||
|
||||
// DWARF expression
|
||||
typedef struct pst_dwarf_expr {
|
||||
// methods
|
||||
bool (*is_equal)(pst_dwarf_expr* lhs, pst_dwarf_expr* rhs);
|
||||
pst_dwarf_op* (*add_op) (pst_dwarf_expr* expr, uint8_t op, uint64_t arg1, uint64_t arg2);
|
||||
pst_dwarf_op* (*next_op) (pst_dwarf_expr* expr, pst_dwarf_op* op);
|
||||
void (*clean) (pst_dwarf_expr* expr);
|
||||
void (*setup) (pst_dwarf_expr* expr, Dwarf_Op* exprs, size_t exprlen);
|
||||
void (*set_value) (pst_dwarf_expr* expr, uint64_t v);
|
||||
bool (*print_op) (pst_dwarf_expr* expr, const char* fmt, ...);
|
||||
|
||||
// fields
|
||||
list_head operations;
|
||||
bool has_value;
|
||||
uint64_t value;
|
||||
@@ -51,5 +41,9 @@ void pst_dwarf_expr_init(pst_dwarf_expr* expr);
|
||||
pst_dwarf_expr* pst_dwarf_expr_new();
|
||||
void pst_dwarf_expr_fini(pst_dwarf_expr* expr);
|
||||
|
||||
void pst_dwarf_expr_setup(pst_dwarf_expr* expr, Dwarf_Op* exprs, size_t exprlen);
|
||||
bool pst_dwarf_expr_equal(pst_dwarf_expr* lhs, pst_dwarf_expr* rhs);
|
||||
bool pst_dwarf_expr_print_op(pst_dwarf_expr* expr, const char* fmt, ...);
|
||||
void pst_dwarf_expr_set_value(pst_dwarf_expr* expr, uint64_t v);
|
||||
|
||||
#endif /* FRAMEWORK_DWARF_EXPRESSION_H_ */
|
||||
|
||||
Reference in New Issue
Block a user