diff mbox

[1/3] expr: make expr_binary_error() usable outside of evaluation

Message ID 1394184521-11419-2-git-send-email-kaber@trash.net
State Accepted
Headers show

Commit Message

Patrick McHardy March 7, 2014, 9:28 a.m. UTC
Turn the eval_ctx argument into a list_head to queue the error to.

Signed-off-by: Patrick McHardy <kaber@trash.net>
---
 include/expression.h | 6 +++---
 src/expression.c     | 4 ++--
 src/payload.c        | 8 ++++----
 3 files changed, 9 insertions(+), 9 deletions(-)
diff mbox

Patch

diff --git a/include/expression.h b/include/expression.h
index ac6a4f4..354e679 100644
--- a/include/expression.h
+++ b/include/expression.h
@@ -268,12 +268,12 @@  extern void expr_set_type(struct expr *expr, const struct datatype *dtype,
 			  enum byteorder byteorder);
 
 struct eval_ctx;
-extern int expr_binary_error(struct eval_ctx *ctx,
+extern int expr_binary_error(struct list_head *msgs,
 			     const struct expr *e1, const struct expr *e2,
 			     const char *fmt, ...) __gmp_fmtstring(4, 5);
 
-#define expr_error(ctx, expr, fmt, args...) \
-	expr_binary_error(ctx, expr, NULL, fmt, ## args)
+#define expr_error(msgs, expr, fmt, args...) \
+	expr_binary_error(msgs, expr, NULL, fmt, ## args)
 
 static inline bool expr_is_constant(const struct expr *expr)
 {
diff --git a/src/expression.c b/src/expression.c
index adaf6e7..cdc2b7b 100644
--- a/src/expression.c
+++ b/src/expression.c
@@ -127,7 +127,7 @@  const struct datatype *expr_basetype(const struct expr *expr)
 	return type;
 }
 
-int __fmtstring(4, 5) expr_binary_error(struct eval_ctx *ctx,
+int __fmtstring(4, 5) expr_binary_error(struct list_head *msgs,
 					const struct expr *e1, const struct expr *e2,
 					const char *fmt, ...)
 {
@@ -139,7 +139,7 @@  int __fmtstring(4, 5) expr_binary_error(struct eval_ctx *ctx,
 	if (e2 != NULL)
 		erec_add_location(erec, &e2->location);
 	va_end(ap);
-	erec_queue(erec, ctx->msgs);
+	erec_queue(erec, msgs);
 	return -1;
 }
 
diff --git a/src/payload.c b/src/payload.c
index a312e07..9f2db6d 100644
--- a/src/payload.c
+++ b/src/payload.c
@@ -154,12 +154,12 @@  int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr,
 
 	if (expr->payload.base < h->base) {
 		if (expr->payload.base < h->base - 1)
-			return expr_error(ctx, expr,
+			return expr_error(ctx->msgs, expr,
 					  "payload base is invalid for this "
 					  "family");
 
 		if (proto_dev_type(expr->payload.desc, &type) < 0)
-			return expr_error(ctx, expr,
+			return expr_error(ctx->msgs, expr,
 					  "protocol specification is invalid "
 					  "for this family");
 
@@ -181,14 +181,14 @@  int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr,
 		desc = &proto_inet_service;
 
 	if (desc == NULL)
-		return expr_error(ctx, expr,
+		return expr_error(ctx->msgs, expr,
 				  "ambiguous payload specification: "
 				  "no %s protocol specified",
 				  proto_base_names[expr->payload.base - 1]);
 
 	protocol = proto_find_num(desc, expr->payload.desc);
 	if (protocol < 0)
-		return expr_error(ctx, expr,
+		return expr_error(ctx->msgs, expr,
 				  "conflicting protocols specified: %s vs. %s",
 				  desc->name, expr->payload.desc->name);