From 3162891832331bb8a9f9a25859a0bd750725ac8e Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Mon, 4 Mar 2013 20:40:39 -0800 Subject: [PATCH] change error_handler function signature to /3 from /6 --- src/jsx_decoder.erl | 4 ++-- src/jsx_utils.erl | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/jsx_decoder.erl b/src/jsx_decoder.erl index c463693..34a8edf 100644 --- a/src/jsx_decoder.erl +++ b/src/jsx_decoder.erl @@ -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>>}, diff --git a/src/jsx_utils.erl b/src/jsx_utils.erl index 5988b09..0b9c571 100644 --- a/src/jsx_utils.erl +++ b/src/jsx_utils.erl @@ -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