summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-11-29 11:41:55 +0000
committerSimon MacMullen <simon@rabbitmq.com>2011-11-29 11:41:55 +0000
commite58525e561fe88243662b7f04c7d93da1a32fecb (patch)
treec3e7e76f9b75467cf68a4b2bd752a1639cc16fde /src
parent04bfde75cb646a34557b5460cb19a7daf9a4f68d (diff)
downloadrabbitmq-server-git-e58525e561fe88243662b7f04c7d93da1a32fecb.tar.gz
Slight simplification that these vars are declared once and failure is a thunk.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_misc.erl12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl
index 96fd719396..0578cf7d9e 100644
--- a/src/rabbit_misc.erl
+++ b/src/rabbit_misc.erl
@@ -250,21 +250,23 @@ assert_args_equivalence(Orig, New, Name, Keys) ->
ok.
assert_args_equivalence1(Orig, New, Name, Key) ->
- FailureFun = fun (Orig1, New1) ->
+ {Orig1, New1} = {table_lookup(Orig, Key), table_lookup(New, Key)},
+ FailureFun = fun () ->
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
+ case {Orig1, New1} of
{Same, Same} ->
ok;
- {{OrigType, OrigVal} = Orig1, {NewType, NewVal} = New1} ->
+ {{OrigType, OrigVal}, {NewType, NewVal}} ->
case type_class(OrigType) == type_class(NewType) andalso
OrigVal == NewVal of
true -> ok;
- false -> FailureFun(Orig1, New1)
+ false -> FailureFun()
end;
- {Orig1, New1} -> FailureFun(Orig1, New1)
+ {_, _} ->
+ FailureFun()
end.
val(undefined) ->