Sfoglia il codice sorgente

Destroy map iterators once we're done with them.

Each call to enif_map_iterator_create() must be paired with a call to
enif_map_iterator_destroy(). Otherwise, we'll leak memory.

Fixes #112
pull/113/head
Jon Parise 9 anni fa
parent
commit
fa825b6fd6
1 ha cambiato i file con 3 aggiunte e 0 eliminazioni
  1. +3
    -0
      c_src/encoder.c

+ 3
- 0
c_src/encoder.c Vedi File

@ -559,6 +559,7 @@ enc_map_to_ejson(ErlNifEnv* env, ERL_NIF_TERM map, ERL_NIF_TERM* out)
do {
if(!enif_map_iterator_get_pair(env, &iter, &key, &val)) {
enif_map_iterator_destroy(env, &iter);
fprintf(stderr, "bad get pair\r\n");
return 0;
}
@ -566,6 +567,8 @@ enc_map_to_ejson(ErlNifEnv* env, ERL_NIF_TERM map, ERL_NIF_TERM* out)
list = enif_make_list_cell(env, tuple, list);
} while(enif_map_iterator_next(env, &iter));
enif_map_iterator_destroy(env, &iter);
*out = enif_make_tuple1(env, list);
return 1;
}

Caricamento…
Annulla
Salva