Mercurial > hg > index.cgi
comparison lwlib/lw_expr.h @ 339:6138e304ab9a
Revert 3b5a45c6ab92
The speedup fix in 3b5a45c6ab92 contains some sort of bug related to operand
manipulation during expression simplification or copying. This leads to
crashes that so have have eluded tracing. Revert back to known working
version of the code, even though slower, to avoid regressions.
author | William Astle <lost@l-w.ca> |
---|---|
date | Fri, 08 Aug 2014 12:14:22 -0600 |
parents | 3b5a45c6ab92 |
children | 4130ffdeb5c8 |
comparison
equal
deleted
inserted
replaced
338:5d401d1eb3e9 | 339:6138e304ab9a |
---|---|
56 | 56 |
57 struct lw_expr_opers | 57 struct lw_expr_opers |
58 { | 58 { |
59 lw_expr_t p; | 59 lw_expr_t p; |
60 struct lw_expr_opers *next; | 60 struct lw_expr_opers *next; |
61 struct lw_expr_opers *prev; | |
62 }; | 61 }; |
63 | 62 |
64 struct lw_expr_priv | 63 struct lw_expr_priv |
65 { | 64 { |
66 int type; // type of term | 65 int type; // type of term |
67 int value; // integer value | 66 int value; // integer value |
68 void *value2; // misc pointer value | 67 void *value2; // misc pointer value |
69 struct lw_expr_opers *operands; // ptr to list of operands (for operators) | 68 struct lw_expr_opers *operands; // ptr to list of operands (for operators) |
70 struct lw_expr_opers *operand_tail; // ptr to last operand | |
71 }; | 69 }; |
72 | 70 |
73 typedef lw_expr_t lw_expr_fn_t(int t, void *ptr, void *priv); | 71 typedef lw_expr_t lw_expr_fn_t(int t, void *ptr, void *priv); |
74 typedef lw_expr_t lw_expr_fn2_t(char *var, void *priv); | 72 typedef lw_expr_t lw_expr_fn2_t(char *var, void *priv); |
75 typedef lw_expr_t lw_expr_fn3_t(char **p, void *priv); | 73 typedef lw_expr_t lw_expr_fn3_t(char **p, void *priv); |