浏览代码

trailer_or_error is not required for correctness

pull/71/head
lwalkin 10 年前
父节点
当前提交
9e10787013
共有 1 个文件被更改,包括 1 次插入11 次删除
  1. +1
    -11
      src/jiffy.erl

+ 1
- 11
src/jiffy.erl 查看文件

@ -19,23 +19,13 @@ decode(Data, Opts) when is_binary(Data), is_list(Opts) ->
{partial, EJson} ->
finish_decode(EJson);
{iter, Decoder, Val, Objs, Curr} ->
trailer_or_error(decode_loop(Data, Decoder, Val, Objs, Curr), Opts, Data);
decode_loop(Data, Decoder, Val, Objs, Curr);
EJson ->
EJson
end;
decode(Data, Opts) when is_list(Data) ->
decode(iolist_to_binary(Data), Opts).
% Only return trailing data if explicitly requested in the options.
trailer_or_error({with_trailer, _EJson, TrailerData} = WithTrailer, Opts, Data) ->
case lists:member(with_trailer, Opts) of
true -> WithTrailer;
false ->
AtByte = iolist_size(Data) - iolist_size(TrailerData) + 1,
throw({error,{AtByte,invalid_trailing_data}})
end;
trailer_or_error(EJson, _Opts, _Data) -> EJson.
encode(Data) ->
encode(Data, []).

正在加载...
取消
保存