From 40984cc1e9a27e038a84108d78a8ce6da2d7b5ae Mon Sep 17 00:00:00 2001 From: Michael Sadkov Date: Tue, 17 Nov 2015 15:50:36 -0800 Subject: [PATCH] recognize bytes_per_red option, reject 0 value --- c_src/jiffy.c | 1 + c_src/jiffy.h | 1 + c_src/util.c | 6 +++--- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/c_src/jiffy.c b/c_src/jiffy.c index 1ea60a3..1682a1e 100644 --- a/c_src/jiffy.c +++ b/c_src/jiffy.c @@ -25,6 +25,7 @@ load(ErlNifEnv* env, void** priv, ERL_NIF_TERM info) st->atom_force_utf8 = make_atom(env, "force_utf8"); st->atom_iter = make_atom(env, "iter"); st->atom_bytes_per_iter = make_atom(env, "bytes_per_iter"); + st->atom_bytes_per_red = make_atom(env, "bytes_per_red"); st->atom_return_maps = make_atom(env, "return_maps"); st->atom_return_trailer = make_atom(env, "return_trailer"); st->atom_has_trailer = make_atom(env, "has_trailer"); diff --git a/c_src/jiffy.h b/c_src/jiffy.h index abe5154..d2e7bf7 100644 --- a/c_src/jiffy.h +++ b/c_src/jiffy.h @@ -28,6 +28,7 @@ typedef struct { ERL_NIF_TERM atom_force_utf8; ERL_NIF_TERM atom_iter; ERL_NIF_TERM atom_bytes_per_iter; + ERL_NIF_TERM atom_bytes_per_red; ERL_NIF_TERM atom_return_maps; ERL_NIF_TERM atom_return_trailer; ERL_NIF_TERM atom_has_trailer; diff --git a/c_src/util.c b/c_src/util.c index 7d8ac74..a8fb706 100644 --- a/c_src/util.c +++ b/c_src/util.c @@ -54,7 +54,7 @@ get_bytes_per_iter(ErlNifEnv* env, ERL_NIF_TERM val, size_t* bpi) return 0; } - if(!enif_get_uint(env, tuple[1], &bytes)) { + if(!enif_get_uint(env, tuple[1], &bytes) || !bytes) { return 0; } @@ -80,11 +80,11 @@ get_bytes_per_red(ErlNifEnv* env, ERL_NIF_TERM val, size_t* bpi) return 0; } - if(enif_compare(tuple[0], st->atom_bytes_per_iter) != 0) { + if(enif_compare(tuple[0], st->atom_bytes_per_red) != 0) { return 0; } - if(!enif_get_uint(env, tuple[1], &bytes)) { + if(!enif_get_uint(env, tuple[1], &bytes) || !bytes) { return 0; }