change error_handler function signature to /3 from /6

This commit is contained in:
alisdair sullivan 2013-03-04 20:40:39 -08:00
parent 8eb302b45f
commit 3162891832
2 changed files with 7 additions and 7 deletions

View file

@ -95,7 +95,7 @@ decoder(Handler, State, Config) ->
-define(error(State, Bin, Handler, Acc, Stack, Config),
case Config#config.error_handler of
false -> erlang:error(badarg);
F -> F(State, Bin, Handler, Acc, Stack, Config)
F -> F(Bin, {decoder, State, Handler, Acc, Stack}, Config)
end
).
-define(error(State, Bin, Handler, Stack, Config),
@ -1948,7 +1948,7 @@ error_test_() ->
custom_error_handler_test_() ->
Decode = fun(JSON, Config) -> start(JSON, {jsx, []}, [], jsx_utils:parse_config(Config)) end,
Error = fun(State, Rest, _Handler, _Acc, _Stack, _Config) -> {State, Rest} end,
Error = fun(Rest, {_, State, _, _, _}, _) -> {State, Rest} end,
[
{"maybe_bom error", ?_assertEqual(
{value, <<16#ef, 0>>},

View file

@ -29,7 +29,7 @@
-export([clean_string/2]).
-ifdef(TEST).
-export([fake_error_handler/6]).
-export([fake_error_handler/3]).
-endif.
-include("jsx_config.hrl").
@ -71,7 +71,7 @@ parse_config([{pre_encode, Encoder}|Rest] = Options, Config) when is_function(En
false -> parse_config(Rest, Config#config{pre_encode=Encoder})
; _ -> erlang:error(badarg, [Options, Config])
end;
parse_config([{error_handler, ErrorHandler}|Rest] = Options, Config) when is_function(ErrorHandler, 6) ->
parse_config([{error_handler, ErrorHandler}|Rest] = Options, Config) when is_function(ErrorHandler, 3) ->
case Config#config.error_handler of
false -> parse_config(Rest, Config#config{error_handler=ErrorHandler})
; _ -> erlang:error(badarg, [Options, Config])
@ -621,8 +621,8 @@ config_test_() ->
])
)},
{"error_handler flag", ?_assertEqual(
#config{error_handler=fun ?MODULE:fake_error_handler/6},
parse_config([{error_handler, fun ?MODULE:fake_error_handler/6}])
#config{error_handler=fun ?MODULE:fake_error_handler/3},
parse_config([{error_handler, fun ?MODULE:fake_error_handler/3}])
)},
{"two error_handlers defined", ?_assertError(
badarg,
@ -635,7 +635,7 @@ config_test_() ->
].
fake_error_handler(_, _, _, _, _, _) -> ok.
fake_error_handler(_, _, _) -> ok.
%% erlang refuses to encode certain codepoints, so fake them