summaryrefslogtreecommitdiff
path: root/odb.go
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2016-02-18 13:10:08 +0100
committerCarlos Martín Nieto <[email protected]>2016-02-18 13:10:08 +0100
commitf05417aaba1a6a01d9533c38b4901bfc58002f49 (patch)
tree941f760c4a30200a0bfd0ce54cfd00e425aef8be /odb.go
parent55594814c9009f9d645aea39a9f917cf82666228 (diff)
parentdc8b154f4f1b346fb6b8dee99fcfa6e4ca2d2d24 (diff)
Merge pull request #282 from ianlancetaylor/master
handles, merge, odb: changes for Go 1.6 pointer passing rules
Diffstat (limited to 'odb.go')
-rw-r--r--odb.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/odb.go b/odb.go
index d881f63..9c6baa3 100644
--- a/odb.go
+++ b/odb.go
@@ -76,12 +76,15 @@ func (v *Odb) Exists(oid *Oid) bool {
func (v *Odb) Write(data []byte, otype ObjectType) (oid *Oid, err error) {
oid = new(Oid)
- hdr := (*reflect.SliceHeader)(unsafe.Pointer(&data))
+ var cptr unsafe.Pointer
+ if len(data) > 0 {
+ cptr = unsafe.Pointer(&data[0])
+ }
runtime.LockOSThread()
defer runtime.UnlockOSThread()
- ret := C.git_odb_write(oid.toC(), v.ptr, unsafe.Pointer(hdr.Data), C.size_t(hdr.Len), C.git_otype(otype))
+ ret := C.git_odb_write(oid.toC(), v.ptr, cptr, C.size_t(len(data)), C.git_otype(otype))
if ret < 0 {
return nil, MakeGitError(ret)