From a952af9bf276f81665a4667768bf2a0cbdcb56c5 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Mon, 23 Aug 2010 13:40:56 -0700 Subject: [PATCH] removed all wonky option matching, replaced with records --- include/jsx_decoder.hrl | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/include/jsx_decoder.hrl b/include/jsx_decoder.hrl index e3125d3..d694ccc 100644 --- a/include/jsx_decoder.hrl +++ b/include/jsx_decoder.hrl @@ -42,12 +42,6 @@ }). -%% option flags - --define(escaped_unicode_to_ascii(X), {_, _, ascii, _, _} = X). --define(escaped_unicode_to_codepoint(X), {_, _, codepoint, _, _} = X). --define(multi_term(X), {_, _, _, true, _} = X). - %% whitespace -define(space, 16#20). -define(tab, 16#09). @@ -104,7 +98,7 @@ ). -%% compilation macros for unified decoder +%% partial codepoint max size differs across encodings -ifdef(utf8). -define(encoding, utf8). -define(partial_codepoint(Bin), byte_size(Bin) < 1). @@ -204,7 +198,7 @@ maybe_done(<>, [array|_] = Stack, Opts) -> value(Rest, Stack, Opts); maybe_done(<>, Stack, #opts{comments = true} = Opts) -> maybe_comment(Rest, fun(Resume) -> maybe_done(Resume, Stack, Opts) end); -maybe_done(Rest, [], ?multi_term(Opts)) -> +maybe_done(Rest, [], #opts{multi_term = true} = Opts) -> {event, end_json, fun() -> start(Rest, [], Opts) end}; maybe_done(Rest, [], Opts) -> done(Rest, Opts); @@ -432,7 +426,7 @@ escape(Bin, Stack, Opts, Acc) -> %% special non-characters). any other option and no conversion is done escaped_unicode(<>, Stack, - ?escaped_unicode_to_ascii(Opts), + #opts{escaped_unicode = ascii} = Opts, String, [C, B, A]) when ?is_hex(D) -> @@ -444,7 +438,7 @@ escaped_unicode(<>, end; escaped_unicode(<>, Stack, - ?escaped_unicode_to_codepoint(Opts), + #opts{escaped_unicode = codepoint} = Opts, String, [C, B, A]) when ?is_hex(D) ->