Quellcode durchsuchen

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

pull/150/head
Gaspar Chilingarov vor 7 Jahren
Ursprung
Commit
07903ff9d4
1 geänderte Dateien mit 19 neuen und 3 gelöschten Zeilen
  1. +19
    -3
      c_src/encoder.c

+ 19
- 3
c_src/encoder.c Datei anzeigen

@ -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");

Laden…
Abbrechen
Speichern