diff --git a/c_src/decoder.c b/c_src/decoder.c index 425a0bf..51276b6 100644 --- a/c_src/decoder.c +++ b/c_src/decoder.c @@ -718,15 +718,19 @@ decode_iter(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) ERL_NIF_TERM ret; ERL_NIF_TERM tmp_argv[5]; + void* res; + size_t start; size_t bytes_processed = 0; if(!enif_inspect_binary(env, argv[0], &bin)) { return enif_make_badarg(env); - } else if(!enif_get_resource(env, argv[1], st->res_dec, (void**) &d)) { + } else if(!enif_get_resource(env, argv[1], st->res_dec, &res)) { return enif_make_badarg(env); } + d = (Decoder*) res; + dec_init(d, env, argv[0], &bin); objs = argv[3]; curr = argv[4]; diff --git a/c_src/encoder.c b/c_src/encoder.c index 9d1a947..3c94989 100644 --- a/c_src/encoder.c +++ b/c_src/encoder.c @@ -706,13 +706,17 @@ encode_iter(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) ErlNifSInt64 lval; double dval; + void* res; + size_t start; size_t bytes_processed = 0; - if(!enif_get_resource(env, argv[0], st->res_enc, (void**) &e)) { + if(!enif_get_resource(env, argv[0], st->res_enc, &res)) { return enif_make_badarg(env); } + e = (Encoder*) res; + if(!enc_init(e, env)) { return enif_make_badarg(env); } diff --git a/rebar.config b/rebar.config index d934993..396631e 100644 --- a/rebar.config +++ b/rebar.config @@ -8,7 +8,7 @@ {port_env, [ {"(linux|solaris|freebsd|netbsd|openbsd|dragonfly|darwin|gnu)", - "CFLAGS", "$CFLAGS -Ic_src/ -g -Wall -flto -Werror -O3 -fno-strict-aliasing"}, + "CFLAGS", "$CFLAGS -Ic_src/ -g -Wall -flto -Werror -O3"}, {"(linux|solaris|freebsd|netbsd|openbsd|dragonfly|darwin|gnu)", "CXXFLAGS", "$CXXFLAGS -Ic_src/ -g -Wall -flto -Werror -O3"},