Browse Source

Fixed infinite loop in ebb_flow:reduce/2 on irreducible function/list pair.

Paul Downen 13 years ago
parent
commit
4018291aa3
1 changed files with 2 additions and 2 deletions
  1. 2 2
      src/ebb_flow.erl

+ 2 - 2
src/ebb_flow.erl

@@ -176,7 +176,7 @@ reduce_left(FOp, LOp) ->
     LOut = ebb_prim:out_arity(LOp),
     case {LOut, LOut div FIn, LOut rem FIn} of
 	{0, 0, _} -> LOp;
-	{0, _, _} -> throw(badarg);
+	{_, 0, _} -> throw(badarg);
 	{_, 1, 0} -> pipe(LOp, FOp);
 	{_, N, 0} -> reduce_right(
 		       FOp, pipe(LOp, par(lists:duplicate(N, FOp))));
@@ -190,7 +190,7 @@ reduce_right(FOp, LOp) ->
     LOut = ebb_prim:out_arity(LOp),
     case {LOut, LOut div FIn, LOut rem FIn} of
 	{0, 0, _} -> LOp;
-	{0, _, _} -> throw(badarg);
+	{_, 0, _} -> throw(badarg);
 	{_, 1, 0} -> pipe(LOp, FOp);
 	{_, N, 0} -> reduce_left(
 		       FOp, pipe(LOp, par(lists:duplicate(N, FOp))));