From 3857980f6cb4d3f1c91782c16a75e4b6ce1ec6d5 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Wed, 30 Nov 2011 06:36:06 -0800 Subject: [PATCH] remove incomplete returns from json_to_term/1,2 and format/1,2 --- src/jsx.erl | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/jsx.erl b/src/jsx.erl index 6867fa5..a71030d 100644 --- a/src/jsx.erl +++ b/src/jsx.erl @@ -102,7 +102,11 @@ to_json(Source, Opts) -> jsx_to_json:to_json(Source, Opts). format(Source) -> format(Source, []). -format(Source, Opts) -> jsx_to_json:to_json(Source, Opts ++ [{parser, decoder}]). +format(Source, Opts) -> + case jsx_to_json:to_json(Source, Opts ++ [{parser, decoder}]) of + {incomplete, _} -> erlang:error(badarg, [Source, Opts]) + ; Result -> Result + end. -spec term_to_json(Source::any()) -> binary(). @@ -110,7 +114,8 @@ format(Source, Opts) -> jsx_to_json:to_json(Source, Opts ++ [{parser, decoder}]) term_to_json(Source) -> term_to_json(Source, []). -term_to_json(Source, Opts) -> to_json(Source, Opts ++ [{parser, encoder}]). +term_to_json(Source, Opts) -> + to_json(Source, Opts ++ [{parser, encoder}]). -spec to_term(Source::any()) -> any(). @@ -126,7 +131,11 @@ to_term(Source, Opts) -> jsx_to_term:to_term(Source, Opts). json_to_term(Source) -> json_to_term(Source, []). -json_to_term(Source, Opts) -> to_term(Source, Opts ++ [{parser, decoder}]). +json_to_term(Source, Opts) -> + case to_term(Source, Opts ++ [{parser, decoder}]) of + {incomplete, _} -> erlang:error(badarg, [Source, Opts]) + ; Result -> Result + end. -spec is_json(Source::binary() | list()) -> true | false.