[Sound-open-firmware] [PATCH 03/10] pipeline: simplify prepare loop

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Mon Sep 25 21:52:11 CEST 2017


MISRA-C:2012, 15.4 - There should be no more than one break or goto
statement used to terminate any iteration statement

reshuffle the code to use a single break with no additional tests.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
---
 src/audio/pipeline.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/audio/pipeline.c b/src/audio/pipeline.c
index a5f7a5d..636a42b 100644
--- a/src/audio/pipeline.c
+++ b/src/audio/pipeline.c
@@ -526,7 +526,7 @@ static int preload_downstream(struct comp_dev *start, struct comp_dev *current)
 int pipeline_prepare(struct pipeline *p, struct comp_dev *dev)
 {
 	struct op_data op_data;
-	int ret;
+	int ret = -1;
 	int i;
 
 	trace_pipe("pre");
@@ -551,18 +551,15 @@ int pipeline_prepare(struct pipeline *p, struct comp_dev *dev)
 
 			ret = preload_downstream(dev, dev);
 
-			/* errors ? */
-			if (ret < 0)
+			/* errors or complete ? */
+			if (ret <= 0)
 				break;
-			/* complete ? */
-			else if (ret == 0)
-				goto out;
 		}
-
-		/* failed to preload */
-		trace_pipe_error("epl");
-		ret = -EIO;
-
+		if (ret < 0) {
+			/* failed to preload */
+			trace_pipe_error("epl");
+			ret = -EIO;
+		}
 	} else {
 		ret = component_op_upstream(&op_data, dev, dev, NULL);
 	}
-- 
2.11.0



More information about the Sound-open-firmware mailing list