From d9822de604770d147e84baca44f568924c71c826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Thu, 13 Feb 2014 16:36:10 +0100 Subject: [PATCH] Extract string->binary conversion --- c_src/geef.c | 12 ++++++++++++ c_src/geef.h | 2 ++ c_src/signature.c | 12 ------------ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/c_src/geef.c b/c_src/geef.c index 3c6a0cd..b99d876 100644 --- a/c_src/geef.c +++ b/c_src/geef.c @@ -137,6 +137,18 @@ int geef_terminate_binary(ErlNifBinary *bin) return 1; } +int geef_string_to_bin(ErlNifBinary *bin, const char *str) +{ + size_t len; + + len = strlen(str); + if (!enif_alloc_binary(len, bin)) + return -1; + + memcpy(bin->data, str, len); + return 0; +} + static ErlNifFunc geef_funcs[] = { {"repository_init", 2, geef_repository_init}, diff --git a/c_src/geef.h b/c_src/geef.h index e3dec2a..fd8fa2e 100644 --- a/c_src/geef.h +++ b/c_src/geef.h @@ -32,5 +32,7 @@ extern geef_atoms atoms; /** NUL-terminate a binary */ int geef_terminate_binary(ErlNifBinary *bin); +/** Copy a string into a binary */ +int geef_string_to_bin(ErlNifBinary *bin, const char *str); #endif diff --git a/c_src/signature.c b/c_src/signature.c index 30d2d57..5db1baa 100644 --- a/c_src/signature.c +++ b/c_src/signature.c @@ -90,18 +90,6 @@ on_oom: } -static int geef_string_to_bin(ErlNifBinary *bin, const char *str) -{ - size_t len; - - len = strlen(str); - if (!enif_alloc_binary(len, bin)) - return -1; - - memcpy(bin->data, str, len); - return 0; -} - int geef_signature_to_erl(ERL_NIF_TERM *out, ErlNifEnv *env, git_signature *sig) { ErlNifBinary name, email;