比较提交

...

2 次代码提交

作者 SHA1 备注 提交日期
  Paul J. Davis f01770755d Allow encoding of improper lists 6 年前
  Paul J. Davis c942525130 0.15.2 7 年前
共有 2 个文件被更改,包括 12 次插入7 次删除
  1. +11
    -6
      c_src/encoder.c
  2. +1
    -1
      src/jiffy.app.src

+ 11
- 6
c_src/encoder.c 查看文件

@ -632,6 +632,7 @@ encode_iter(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
ERL_NIF_TERM stack; ERL_NIF_TERM stack;
ERL_NIF_TERM curr; ERL_NIF_TERM curr;
ERL_NIF_TERM item; ERL_NIF_TERM item;
ERL_NIF_TERM tmp;
const ERL_NIF_TERM* tuple; const ERL_NIF_TERM* tuple;
int arity; int arity;
ErlNifSInt64 lval; ErlNifSInt64 lval;
@ -689,9 +690,11 @@ encode_iter(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
} }
continue; continue;
} }
if(!enif_get_list_cell(env, curr, &item, &curr)) {
ret = enc_error(e, "internal_error");
goto done;
if(!enif_get_list_cell(env, curr, &item, &tmp)) {
item = curr;
curr = enif_make_list(env, 0);
} else {
curr = tmp;
} }
if(!enif_get_tuple(env, item, &arity, &tuple)) { if(!enif_get_tuple(env, item, &arity, &tuple)) {
ret = enc_obj_error(e, "invalid_object_member", item); ret = enc_obj_error(e, "invalid_object_member", item);
@ -732,9 +735,11 @@ encode_iter(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
ret = enc_error(e, "internal_error"); ret = enc_error(e, "internal_error");
goto done; goto done;
} }
if(!enif_get_list_cell(env, curr, &item, &curr)) {
ret = enc_error(e, "internal_error");
goto done;
if(!enif_get_list_cell(env, curr, &item, &tmp)) {
item = curr;
curr = enif_make_list(env, 0);
} else {
curr = tmp;
} }
stack = enif_make_list_cell(env, curr, stack); stack = enif_make_list_cell(env, curr, stack);
stack = enif_make_list_cell(env, e->atoms->ref_array, stack); stack = enif_make_list_cell(env, e->atoms->ref_array, stack);

+ 1
- 1
src/jiffy.app.src 查看文件

@ -1,6 +1,6 @@
{application, jiffy, [ {application, jiffy, [
{description, "JSON Decoder/Encoder."}, {description, "JSON Decoder/Encoder."},
{vsn, "0.15.1"},
{vsn, "0.15.2"},
{registered, []}, {registered, []},
{applications, [kernel, stdlib, xmerl]}, {applications, [kernel, stdlib, xmerl]},
{maintainers, ["Paul J. Davis"]}, {maintainers, ["Paul J. Davis"]},

正在加载...
取消
保存