Преглед изворни кода

Allow encoding of int as map key to avoid forcing convertion to binary in Erlang

pull/150/head
Gaspar Chilingarov пре 7 година
родитељ
комит
07903ff9d4
1 измењених фајлова са 19 додато и 3 уклоњено
  1. +19
    -3
      c_src/encoder.c

+ 19
- 3
c_src/encoder.c Прегледај датотеку

@ -814,9 +814,25 @@ encode_iter(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
ret = enc_obj_error(e, "invalid_object_member_arity", item);
goto done;
}
if(!enc_string(e, tuple[0])) {
ret = enc_obj_error(e, "invalid_object_member_key", tuple[0]);
goto done;
if(enif_get_int64(env, tuple[0], &lval)) {
if (!enc_char(e, '"')) {
ret = enc_error(e, "internal_error");
goto done;
}
if(!enc_long(e, lval)) {
ret = enc_obj_error(e, "invalid_object_member_key", tuple[0]);
goto done;
}
if (!enc_char(e, '"')) {
ret = enc_error(e, "internal_error");
goto done;
}
}
else {
if(!enc_string(e, tuple[0])) {
ret = enc_obj_error(e, "invalid_object_member_key", tuple[0]);
goto done;
}
}
if(!enc_colon(e)) {
ret = enc_error(e, "internal_error");

Loading…
Откажи
Сачувај