Browse Source

Fix logic bug; we weren't checking last requirement in sort_deps.

Rusty Russell 16 years ago
parent
commit
fdc6fb3dc9
1 changed files with 4 additions and 4 deletions
  1. 4 4
      ccan/tdb/tools/replay_trace.c

+ 4 - 4
ccan/tdb/tools/replay_trace.c

@@ -1088,6 +1088,10 @@ static bool sort_deps(char *filename[], struct op *op[],
 	struct op *this_op;
 	bool done[num_files];
 
+	/* None left?  We're sorted. */
+	if (off == num)
+		return true;
+
 	/* Does this make serial numbers go backwards?  Allow a little fuzz. */
 	if (off > 0) {
 		int serial1 = op[res[off-1].file][res[off-1].op_num].serial;
@@ -1102,10 +1106,6 @@ static bool sort_deps(char *filename[], struct op *op[],
 		}
 	}
 
-	/* One or none left?  We're sorted. */
-	if (off + 1 >= num)
-		return true;
-
 	memset(done, 0, sizeof(done));
 
 	/* Since ops within a trace file are ordered, we just need to figure