summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2011-11-28 16:39:35 +0000
committerEmile Joubert <emile@rabbitmq.com>2011-11-28 16:39:35 +0000
commit1dbd4eca982651c95dff1c2045d2e2df0ba75386 (patch)
tree32264db5d9a9a84957b68296809f71992e39f4bc
parentff07cdabd6fec11d82be05ea294068a53c7b40d7 (diff)
downloadrabbitmq-server-1dbd4eca982651c95dff1c2045d2e2df0ba75386.tar.gz
Rearrange
-rw-r--r--src/rabbit_misc.erl33
1 files changed, 15 insertions, 18 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl
index e145c200..96fd7193 100644
--- a/src/rabbit_misc.erl
+++ b/src/rabbit_misc.erl
@@ -250,24 +250,21 @@ assert_args_equivalence(Orig, New, Name, Keys) ->
ok.
assert_args_equivalence1(Orig, New, Name, Key) ->
- Comparison =
- case {table_lookup(Orig, Key), table_lookup(New, Key)} of
- {Same, Same} ->
- ok;
- {{OrigType, OrigVal} = Orig1, {NewType, NewVal} = New1} ->
- case type_class(OrigType) == type_class(NewType) andalso
- OrigVal == NewVal of
- true -> ok;
- false -> {Orig1, New1}
- end;
- {_, _} = X -> X
- end,
- case Comparison of
- ok -> ok;
- {Orig2, New2} -> protocol_error(precondition_failed, "inequivalent arg"
- " '~s' for ~s: received ~s but current"
- " is ~s",
- [Key, rs(Name), val(New2), val(Orig2)])
+ FailureFun = fun (Orig1, New1) ->
+ protocol_error(precondition_failed, "inequivalent arg '~s'"
+ "for ~s: received ~s but current is ~s",
+ [Key, rs(Name), val(New1), val(Orig1)])
+ end,
+ case {table_lookup(Orig, Key), table_lookup(New, Key)} of
+ {Same, Same} ->
+ ok;
+ {{OrigType, OrigVal} = Orig1, {NewType, NewVal} = New1} ->
+ case type_class(OrigType) == type_class(NewType) andalso
+ OrigVal == NewVal of
+ true -> ok;
+ false -> FailureFun(Orig1, New1)
+ end;
+ {Orig1, New1} -> FailureFun(Orig1, New1)
end.
val(undefined) ->