Przeglądaj źródła

Use enif_is_identical for equality checks

pull/176/head
John Högberg 6 lat temu
rodzic
commit
79536af5b4
2 zmienionych plików z 14 dodań i 14 usunięć
  1. +5
    -5
      c_src/decoder.c
  2. +9
    -9
      c_src/encoder.c

+ 5
- 5
c_src/decoder.c Wyświetl plik

@ -678,19 +678,19 @@ decode_init(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
continue;
} else if(get_bytes_per_red(env, val, &(d->bytes_per_red))) {
continue;
} else if(enif_compare(val, d->atoms->atom_return_maps) == 0) {
} else if(enif_is_identical(val, d->atoms->atom_return_maps)) {
#if MAP_TYPE_PRESENT
d->return_maps = 1;
#else
return enif_make_badarg(env);
#endif
} else if(enif_compare(val, d->atoms->atom_return_trailer) == 0) {
} else if(enif_is_identical(val, d->atoms->atom_return_trailer)) {
d->return_trailer = 1;
} else if(enif_compare(val, d->atoms->atom_dedupe_keys) == 0) {
} else if(enif_is_identical(val, d->atoms->atom_dedupe_keys)) {
d->dedupe_keys = 1;
} else if(enif_compare(val, d->atoms->atom_copy_strings) == 0) {
} else if(enif_is_identical(val, d->atoms->atom_copy_strings)) {
d->copy_strings = 1;
} else if(enif_compare(val, d->atoms->atom_use_nil) == 0) {
} else if(enif_is_identical(val, d->atoms->atom_use_nil)) {
d->null_term = d->atoms->atom_nil;
} else if(get_null_term(env, val, &(d->null_term))) {
continue;

+ 9
- 9
c_src/encoder.c Wyświetl plik

@ -726,15 +726,15 @@ encode_init(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
}
while(enif_get_list_cell(env, opts, &val, &opts)) {
if(enif_compare(val, e->atoms->atom_uescape) == 0) {
if(enif_is_identical(val, e->atoms->atom_uescape)) {
e->uescape = 1;
} else if(enif_compare(val, e->atoms->atom_pretty) == 0) {
} else if(enif_is_identical(val, e->atoms->atom_pretty)) {
e->pretty = 1;
} else if(enif_compare(val, e->atoms->atom_escape_forward_slashes) == 0) {
} else if(enif_is_identical(val, e->atoms->atom_escape_forward_slashes)) {
e->escape_forward_slashes = 1;
} else if(enif_compare(val, e->atoms->atom_use_nil) == 0) {
} else if(enif_is_identical(val, e->atoms->atom_use_nil)) {
e->use_nil = 1;
} else if(enif_compare(val, e->atoms->atom_force_utf8) == 0) {
} else if(enif_is_identical(val, e->atoms->atom_force_utf8)) {
// Ignore, handled in Erlang
} else if(get_bytes_per_iter(env, val, &(e->bytes_per_red))) {
continue;
@ -858,22 +858,22 @@ encode_iter(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
termstack_push(&stack, curr);
termstack_push(&stack, e->atoms->ref_array);
termstack_push(&stack, item);
} else if(enif_compare(curr, e->atoms->atom_null) == 0) {
} else if(enif_is_identical(curr, e->atoms->atom_null)) {
if(!enc_literal(e, "null", 4)) {
ret = enc_error(e, "null");
goto done;
}
} else if(e->use_nil && enif_compare(curr, e->atoms->atom_nil) == 0) {
} else if(e->use_nil && enif_is_identical(curr, e->atoms->atom_nil)) {
if(!enc_literal(e, "null", 4)) {
ret = enc_error(e, "null");
goto done;
}
} else if(enif_compare(curr, e->atoms->atom_true) == 0) {
} else if(enif_is_identical(curr, e->atoms->atom_true)) {
if(!enc_literal(e, "true", 4)) {
ret = enc_error(e, "true");
goto done;
}
} else if(enif_compare(curr, e->atoms->atom_false) == 0) {
} else if(enif_is_identical(curr, e->atoms->atom_false)) {
if(!enc_literal(e, "false", 5)) {
ret = enc_error(e, "false");
goto done;

Ładowanie…
Anuluj
Zapisz