From 28e890ca9573184ac5d83fb65ccc7dd6afa94fe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sun, 20 Sep 2015 20:16:16 +0200 Subject: [PATCH] Adjust to libgit2 v0.23 --- c_src/config.c | 9 ++++++--- c_src/index.c | 6 +++--- c_src/reference.c | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/c_src/config.c b/c_src/config.c index 41dabbb..2a07529 100644 --- a/c_src/config.c +++ b/c_src/config.c @@ -125,21 +125,24 @@ geef_config_get_string(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) { geef_config *cfg; ErlNifBinary bin, result; + git_buf buf = { 0 }; int error; - const char *val; ERL_NIF_TERM ret; ret = extract(&cfg, &bin, env, argv); if (ret != atoms.ok) return ret; - error = git_config_get_string(&val, cfg->config, (char *) bin.data); + error = git_config_get_string_buf(&buf, cfg->config, (char *) bin.data); enif_release_binary(&bin); if (error < 0) return geef_error(env); - if (geef_string_to_bin(&result, val) < 0) + error = geef_string_to_bin(&result, buf.ptr); + git_buf_free(&buf); + + if (error < 0) return geef_error(env); return enif_make_tuple2(env, atoms.ok, enif_make_binary(env, &result)); diff --git a/c_src/index.c b/c_src/index.c index 87d1dad..22da6a0 100644 --- a/c_src/index.c +++ b/c_src/index.c @@ -111,11 +111,11 @@ geef_index_add(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) memset(&entry, 0, sizeof(entry)); if (enif_compare(eentry[1], atoms.undefined) && - !enif_get_int64(env, eentry[1], &entry.ctime.seconds)) + !enif_get_int(env, eentry[1], &entry.ctime.seconds)) return enif_make_badarg(env); if (enif_compare(eentry[2], atoms.undefined) && - !enif_get_int64(env, eentry[2], &entry.mtime.seconds)) + !enif_get_int(env, eentry[2], &entry.mtime.seconds)) return enif_make_badarg(env); if (enif_compare(eentry[3], atoms.undefined) && @@ -137,7 +137,7 @@ geef_index_add(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) !enif_get_uint(env, eentry[7], &entry.gid)) return enif_make_badarg(env); - if (!enif_get_int64(env, eentry[8], &entry.file_size)) + if (!enif_get_uint(env, eentry[8], &entry.file_size)) return enif_make_badarg(env); /* [9] comes later */ diff --git a/c_src/reference.c b/c_src/reference.c index 1994d6f..a6aee96 100644 --- a/c_src/reference.c +++ b/c_src/reference.c @@ -396,13 +396,13 @@ geef_reference_create(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) pname = (const char *) name.data; if (enif_is_identical(argv[2], atoms.oid)) { const git_oid *oid = (const git_oid *) target.data; - error = git_reference_create(&ref, repo->repo, pname, oid, force, NULL, NULL); + error = git_reference_create(&ref, repo->repo, pname, oid, force, NULL); } else if (enif_is_identical(argv[2], atoms.symbolic)) { if (!geef_terminate_binary(&target)) return geef_oom(env); ptarget = (const char *) target.data; - error = git_reference_symbolic_create(&ref, repo->repo, pname, ptarget, force, NULL, NULL); + error = git_reference_symbolic_create(&ref, repo->repo, pname, ptarget, force, NULL); enif_release_binary(&target); } else { enif_release_binary(&target);