do not use struct function pointers elsewhere, use them only in case

when polymorphysm needed
This commit is contained in:
2020-02-03 15:04:09 +04:00
parent b79db14d0c
commit 810ce7519d
15 changed files with 609 additions and 749 deletions
+4 -10
View File
@@ -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_ */