diff options
| -rw-r--r-- | blob.go | 15 | ||||
| -rwxr-xr-x | script/build-libgit2-static.sh | 1 | ||||
| m--------- | vendor/libgit2 | 0 |
3 files changed, 13 insertions, 3 deletions
@@ -36,12 +36,21 @@ func (v *Blob) Contents() []byte { func (repo *Repository) CreateBlobFromBuffer(data []byte) (*Oid, error) { runtime.LockOSThread() defer runtime.UnlockOSThread() - oid := C.git_oid{} - ecode := C.git_blob_create_frombuffer(&oid, repo.ptr, unsafe.Pointer(&data[0]), C.size_t(len(data))) + + var id C.git_oid + var ptr unsafe.Pointer + + if len(data) > 0 { + ptr = unsafe.Pointer(&data[0]) + } else { + ptr = unsafe.Pointer(nil) + } + + ecode := C.git_blob_create_frombuffer(&id, repo.ptr, ptr, C.size_t(len(data))) if ecode < 0 { return nil, MakeGitError(ecode) } - return newOidFromC(&oid), nil + return newOidFromC(&id), nil } type BlobChunkCallback func(maxLen int) ([]byte, error) diff --git a/script/build-libgit2-static.sh b/script/build-libgit2-static.sh index b4d4241..5723721 100755 --- a/script/build-libgit2-static.sh +++ b/script/build-libgit2-static.sh @@ -5,6 +5,7 @@ set -ex VENDORED_PATH=vendor/libgit2 cd $VENDORED_PATH && +mkdir -p install/lib && mkdir -p build && cd build && cmake -DTHREADSAFE=ON \ diff --git a/vendor/libgit2 b/vendor/libgit2 -Subproject 28f087c8642ff9c8dd6964e101e6d8539db6281 +Subproject b4d00c1d2466de3558a7cc6983dce4eb2ee9843 |
