Skip to content

Commit

Permalink
Miscellaneous refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
cjdrake committed Jun 28, 2015
1 parent 13c90ef commit 1136760
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 15 deletions.
32 changes: 18 additions & 14 deletions extension/boolexpr/compose.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,37 @@


static struct BoolExpr *
_const_compose(struct BoolExpr *ex, struct BX_Dict *var2ex)
_const_compose(struct BoolExpr *c, struct BX_Dict *var2ex)
{
return BX_IncRef(ex);
return BX_IncRef(c);
}


static struct BoolExpr *
_var_compose(struct BoolExpr *x, struct BX_Dict *var2ex)
_var_compose(struct BoolExpr *var, struct BX_Dict *var2ex)
{
struct BoolExpr *ex = BX_Dict_Search(var2ex, x);
struct BoolExpr *ex;

ex = BX_Dict_Search(var2ex, var);

if (ex == (struct BoolExpr *) NULL)
return BX_IncRef(x);
return BX_IncRef(var);

return BX_IncRef(ex);
}


static struct BoolExpr *
_comp_compose(struct BoolExpr *xn, struct BX_Dict *var2ex)
_comp_compose(struct BoolExpr *comp, struct BX_Dict *var2ex)
{
struct BoolExpr *lit = BX_Literal(xn->data.lit.lits, -xn->data.lit.uniqid);
struct BoolExpr *var;
struct BoolExpr *temp;
struct BoolExpr *y;

CHECK_NULL_1(temp, _var_compose(lit, var2ex), lit);
BX_DecRef(lit);
CHECK_NULL(var, BX_Not(comp));

CHECK_NULL_1(temp, _var_compose(var, var2ex), var);
BX_DecRef(var);

CHECK_NULL_1(y, BX_Not(temp), temp);
BX_DecRef(temp);
Expand All @@ -54,26 +58,26 @@ _comp_compose(struct BoolExpr *xn, struct BX_Dict *var2ex)
static struct BoolExpr *
_op_compose(struct BoolExpr *op, struct BX_Dict *var2ex)
{
size_t length = op->data.xs->length;
size_t n = op->data.xs->length;
struct BoolExpr **xs;
unsigned int mod_count = 0;
struct BoolExpr *y;

xs = malloc(length * sizeof(struct BoolExpr *));
xs = malloc(n * sizeof(struct BoolExpr *));
if (xs == NULL)
return NULL; // LCOV_EXCL_LINE

for (size_t i = 0; i < length; ++i) {
for (size_t i = 0; i < n; ++i) {
CHECK_NULL_N(xs[i], BX_Compose(op->data.xs->items[i], var2ex), i, xs);
mod_count += (xs[i] != op->data.xs->items[i]);
}

if (mod_count)
y = _bx_op_new(op->kind, length, xs);
y = _bx_op_new(op->kind, n, xs);
else
y = BX_IncRef(op);

_bx_free_exprs(length, xs);
_bx_free_exprs(n, xs);

return y;
}
Expand Down
2 changes: 1 addition & 1 deletion extension/boolexpr/product.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ _product(BX_Kind kind, size_t n, struct BX_Array **arrays)
prod = _multiply(kind, arrays[n-1], prev);
if (prod == NULL) {
BX_Array_Del(prev); // LCOV_EXCL_LINE
return NULL; // LCOV_EXCL_LINE
return NULL; // LCOV_EXCL_LINE
}

BX_Array_Del(prev);
Expand Down

0 comments on commit 1136760

Please sign in to comment.