summaryrefslogtreecommitdiff
path: root/src/libgit2/refs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libgit2/refs.c')
-rw-r--r--src/libgit2/refs.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libgit2/refs.c b/src/libgit2/refs.c
index 8e4abaccc..5e2fe97e7 100644
--- a/src/libgit2/refs.c
+++ b/src/libgit2/refs.c
@@ -72,6 +72,7 @@ git_reference *git_reference__alloc(
const git_oid *oid,
const git_oid *peel)
{
+ git_oid_t oid_type;
git_reference *ref;
GIT_ASSERT_ARG_WITH_RETVAL(name, NULL);
@@ -84,10 +85,16 @@ git_reference *git_reference__alloc(
ref->type = GIT_REFERENCE_DIRECT;
git_oid_cpy(&ref->target.oid, oid);
+#ifdef GIT_EXPERIMENTAL_SHA256
+ oid_type = oid->type;
+#else
+ oid_type = GIT_OID_SHA1;
+#endif
+
if (peel != NULL)
git_oid_cpy(&ref->peel, peel);
else
- git_oid_clear(&ref->peel, GIT_OID_SHA1);
+ git_oid_clear(&ref->peel, oid_type);
return ref;
}