Sophie

Sophie

distrib > Mageia > 8 > armv7hl > media > core-release-src > by-pkgid > c10308044d5c491bdcab79f420a50e93 > files > 5

erlang-snappy-1.1.1-0.19.git348da43.mga8.src.rpm

From: Peter Membrey <peter@membrey.hk>
Date: Fri, 16 May 2014 22:26:43 +0800
Subject: [PATCH] Quick refactor - only init the structs when necessary


diff --git a/c_src/snappy_nif.cc b/c_src/snappy_nif.cc
index 527b4d4..517ff89 100644
--- a/c_src/snappy_nif.cc
+++ b/c_src/snappy_nif.cc
@@ -138,10 +138,6 @@ ERL_NIF_TERM
 snappy_compress_erl(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
 {
     ErlNifBinary input;
-    ErlNifBinary empty;
-
-    // init empty;
-    memset(&empty,0,sizeof(ErlNifBinary));
 
     if(!enif_inspect_iolist_as_binary(env, argv[0], &input)) {
         return enif_make_badarg(env);
@@ -151,6 +147,9 @@ snappy_compress_erl(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
     // Snappy will do this in any case, so might as well skip the
     // overhead...
     if(input.size == 0) {
+        ErlNifBinary empty;
+        // init empty;
+        memset(&empty,0,sizeof(ErlNifBinary));
         return make_ok(env, enif_make_binary(env,&empty));
      }
 
@@ -174,9 +173,6 @@ snappy_decompress_erl(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
     ErlNifBinary ret;
     size_t len;
 
-    // init ret;
-    memset(&ret,0,sizeof(ErlNifBinary));
-
     if(!enif_inspect_iolist_as_binary(env, argv[0], &bin)) {
         return enif_make_badarg(env);
     }
@@ -186,6 +182,7 @@ snappy_decompress_erl(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
         // Snappy library cannot decompress an empty binary - although
         // it will unfortunately let you compress one. If an empty binary
         // has been passed - send an empty binary back.
+        memset(&ret,0,sizeof(ErlNifBinary));
         return make_ok(env, enif_make_binary(env,&ret));
     }