From 8a4f92d8e65028ee58d1e786b0eb9fe2af5c3cf9 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Sun, 7 Dec 2014 22:21:55 +0000 Subject: [PATCH] skip redundant check for `uescape` escaping --- src/jsx_decoder.erl | 5 +---- src/jsx_parser.erl | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/jsx_decoder.erl b/src/jsx_decoder.erl index 81f06ba..de8e1af 100644 --- a/src/jsx_decoder.erl +++ b/src/jsx_decoder.erl @@ -311,7 +311,7 @@ string(<>, Handler, Acc, Stack, Config) -> string(<>, Handler, Acc, Stack, Config) -> unescape(Rest, Handler, Acc, Stack, Config); string(<>, Handler, Acc, Stack, Config=#config{uescape=true}) when X >= 16#80 -> - string(Rest, Handler, [Acc, maybe_replace(X, Config)], Stack, Config); + string(Rest, Handler, [Acc, json_escape_sequence(X)], Stack, Config); string(<>, Handler, Acc, Stack, Config) when X == 16#2028; X == 16#2029 -> string(Rest, Handler, [Acc, maybe_replace(X, Config)], Stack, Config); string(<<_/utf8, _/binary>> = Bin, Handler, Acc, Stack, Config) -> @@ -761,9 +761,6 @@ maybe_replace(X, Config=#config{escaped_strings=true}) when X == 16#2028; X == end; maybe_replace(X, #config{escaped_strings=true}) when X < 32 -> json_escape_sequence(X); -%% escaped even if no other escaping requested! -maybe_replace(X, #config{uescape=true}) when X >= 16#80 -> - json_escape_sequence(X); maybe_replace(X, _Config) -> <>. diff --git a/src/jsx_parser.erl b/src/jsx_parser.erl index 7a8f230..e99ef53 100644 --- a/src/jsx_parser.erl +++ b/src/jsx_parser.erl @@ -205,7 +205,7 @@ clean(<<47, Rest/binary>>, Acc, Config) -> clean(<<92, Rest/binary>>, Acc, Config) -> clean(Rest, [Acc, maybe_replace(92, Config)], Config); clean(<>, Acc, Config=#config{uescape=true}) when X >= 16#80 -> - clean(Rest, [Acc, maybe_replace(X, Config)], Config); + clean(Rest, [Acc, json_escape_sequence(X)], Config); clean(<>, Acc, Config) when X == 16#2028; X == 16#2029 -> clean(Rest, [Acc, maybe_replace(X, Config)], Config); clean(<<_/utf8, _/binary>> = Bin, Acc, Config) -> @@ -489,9 +489,6 @@ maybe_replace($\\, #config{escaped_strings=true}) -> [$\\, $\\]; maybe_replace(X, #config{escaped_strings=true}) when X < 32 -> json_escape_sequence(X); -%% escaped even if no other escaping was requested! -maybe_replace(X, #config{uescape=true}) when X >= 16#80 -> - json_escape_sequence(X); maybe_replace(X, Config=#config{escaped_strings=true}) when X == 16#2028; X == 16#2029 -> case Config#config.unescaped_jsonp of true -> [<>];