瀏覽代碼

fail when trying to encode atom 'undefined'

pull/152/head
Pierre Fenoll 7 年之前
父節點
當前提交
0cebc347f8
共有 3 個檔案被更改,包括 5 行新增0 行删除
  1. +3
    -0
      c_src/encoder.c
  2. +1
    -0
      c_src/jiffy.c
  3. +1
    -0
      c_src/jiffy.h

+ 3
- 0
c_src/encoder.c 查看文件

@ -759,6 +759,9 @@ encode_iter(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
ret = enc_error(e, "false");
goto done;
}
} else if(enif_compare(curr, e->atoms->atom_undefined) == 0) {
ret = enc_obj_error(e, "invalid_ejson", curr);
goto done;
} else if(enif_is_binary(env, curr)) {
if(!enc_string(e, curr)) {
ret = enc_obj_error(e, "invalid_string", curr);

+ 1
- 0
c_src/jiffy.c 查看文件

@ -34,6 +34,7 @@ load(ErlNifEnv* env, void** priv, ERL_NIF_TERM info)
st->atom_escape_forward_slashes = make_atom(env, "escape_forward_slashes");
st->atom_dedupe_keys = make_atom(env, "dedupe_keys");
st->atom_copy_strings = make_atom(env, "copy_strings");
st->atom_undefined = make_atom(env, "undefined");
// Markers used in encoding
st->ref_object = make_atom(env, "$object_ref$");

+ 1
- 0
c_src/jiffy.h 查看文件

@ -37,6 +37,7 @@ typedef struct {
ERL_NIF_TERM atom_escape_forward_slashes;
ERL_NIF_TERM atom_dedupe_keys;
ERL_NIF_TERM atom_copy_strings;
ERL_NIF_TERM atom_undefined;
ERL_NIF_TERM ref_object;
ERL_NIF_TERM ref_array;

Loading…
取消
儲存