Extract string->binary conversion

This commit is contained in:
Carlos Martín Nieto
2014-02-13 16:36:10 +01:00
parent d4204b4b79
commit d9822de604
3 changed files with 14 additions and 12 deletions

View File

@@ -137,6 +137,18 @@ int geef_terminate_binary(ErlNifBinary *bin)
return 1; 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[] = static ErlNifFunc geef_funcs[] =
{ {
{"repository_init", 2, geef_repository_init}, {"repository_init", 2, geef_repository_init},

View File

@@ -32,5 +32,7 @@ extern geef_atoms atoms;
/** NUL-terminate a binary */ /** NUL-terminate a binary */
int geef_terminate_binary(ErlNifBinary *bin); int geef_terminate_binary(ErlNifBinary *bin);
/** Copy a string into a binary */
int geef_string_to_bin(ErlNifBinary *bin, const char *str);
#endif #endif

View File

@@ -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) int geef_signature_to_erl(ERL_NIF_TERM *out, ErlNifEnv *env, git_signature *sig)
{ {
ErlNifBinary name, email; ErlNifBinary name, email;