Skip to content

Commit 88a62d6

Browse files
committed
filterx: simplify constructors for nullv assignments
Signed-off-by: Balazs Scheidler <balazs.scheidler@axoflow.com>
1 parent 47a5239 commit 88a62d6

File tree

3 files changed

+26
-46
lines changed

3 files changed

+26
-46
lines changed

lib/filterx/expr-assign.c

+9-10
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,6 @@ _assign_eval(FilterXExpr *s)
9191
return _assign(self, value);
9292
}
9393

94-
FilterXExpr *
95-
filterx_nullv_assign_new(FilterXExpr *lhs, FilterXExpr *rhs)
96-
{
97-
FilterXBinaryOp *self = g_new0(FilterXBinaryOp, 1);
98-
99-
filterx_binary_op_init_instance(self, "nullv_assign", lhs, rhs);
100-
self->super.eval = _nullv_assign_eval;
101-
self->super.ignore_falsy_result = TRUE;
102-
return &self->super;
103-
}
10494

10595
/* NOTE: takes the object reference */
10696
FilterXExpr *
@@ -113,3 +103,12 @@ filterx_assign_new(FilterXExpr *lhs, FilterXExpr *rhs)
113103
self->super.ignore_falsy_result = TRUE;
114104
return &self->super;
115105
}
106+
107+
FilterXExpr *
108+
filterx_nullv_assign_new(FilterXExpr *lhs, FilterXExpr *rhs)
109+
{
110+
FilterXExpr *self = filterx_assign_new(lhs, rhs);
111+
self->type = "nullv_assign";
112+
self->eval = _nullv_assign_eval;
113+
return self;
114+
}

lib/filterx/expr-set-subscript.c

+8-16
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,12 @@ _free(FilterXExpr *s)
218218
}
219219

220220
FilterXExpr *
221-
filterx_nullv_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXExpr *new_value)
221+
filterx_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXExpr *new_value)
222222
{
223223
FilterXSetSubscript *self = g_new0(FilterXSetSubscript, 1);
224224

225-
filterx_expr_init_instance(&self->super, "nullv_set_subscript");
226-
self->super.eval = _nullv_set_subscript_eval;
225+
filterx_expr_init_instance(&self->super, "set_subscript");
226+
self->super.eval = _set_subscript_eval;
227227
self->super.optimize = _optimize;
228228
self->super.init = _init;
229229
self->super.deinit = _deinit;
@@ -236,19 +236,11 @@ filterx_nullv_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXEx
236236
}
237237

238238
FilterXExpr *
239-
filterx_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXExpr *new_value)
239+
filterx_nullv_set_subscript_new(FilterXExpr *object, FilterXExpr *key, FilterXExpr *new_value)
240240
{
241-
FilterXSetSubscript *self = g_new0(FilterXSetSubscript, 1);
241+
FilterXExpr *self = filterx_set_subscript_new(object, key, new_value);
242242

243-
filterx_expr_init_instance(&self->super, "set_subscript");
244-
self->super.eval = _set_subscript_eval;
245-
self->super.optimize = _optimize;
246-
self->super.init = _init;
247-
self->super.deinit = _deinit;
248-
self->super.free_fn = _free;
249-
self->object = object;
250-
self->key = key;
251-
self->new_value = new_value;
252-
self->super.ignore_falsy_result = TRUE;
253-
return &self->super;
243+
self->type = "nullv_set_subscript";
244+
self->eval = _nullv_set_subscript_eval;
245+
return self;
254246
}

lib/filterx/expr-setattr.c

+9-20
Original file line numberDiff line numberDiff line change
@@ -191,26 +191,6 @@ _free(FilterXExpr *s)
191191
filterx_expr_free_method(s);
192192
}
193193

194-
FilterXExpr *
195-
filterx_nullv_setattr_new(FilterXExpr *object, FilterXString *attr_name, FilterXExpr *new_value)
196-
{
197-
FilterXSetAttr *self = g_new0(FilterXSetAttr, 1);
198-
199-
filterx_expr_init_instance(&self->super, "nullv_setattr");
200-
self->super.eval = _nullv_setattr_eval;
201-
self->super.optimize = _optimize;
202-
self->super.init = _init;
203-
self->super.deinit = _deinit;
204-
self->super.free_fn = _free;
205-
self->object = object;
206-
207-
self->attr = (FilterXObject *) attr_name;
208-
209-
self->new_value = new_value;
210-
self->super.ignore_falsy_result = TRUE;
211-
return &self->super;
212-
}
213-
214194
/* Takes reference of object and new_value */
215195
FilterXExpr *
216196
filterx_setattr_new(FilterXExpr *object, FilterXString *attr_name, FilterXExpr *new_value)
@@ -231,3 +211,12 @@ filterx_setattr_new(FilterXExpr *object, FilterXString *attr_name, FilterXExpr *
231211
self->super.ignore_falsy_result = TRUE;
232212
return &self->super;
233213
}
214+
215+
FilterXExpr *
216+
filterx_nullv_setattr_new(FilterXExpr *object, FilterXString *attr_name, FilterXExpr *new_value)
217+
{
218+
FilterXExpr *self = filterx_setattr_new(object, attr_name, new_value);
219+
self->type = "nullv_setattr";
220+
self->eval = _nullv_setattr_eval;
221+
return self;
222+
}

0 commit comments

Comments
 (0)