diff options
| author | Jesse Ezell <[email protected]> | 2014-04-04 00:26:22 -0700 |
|---|---|---|
| committer | Jesse Ezell <[email protected]> | 2014-04-04 00:26:22 -0700 |
| commit | 8319a792f3184714d8f2bfa562523d1a91a9392c (patch) | |
| tree | c3914d4a38355f9145884c3a278b81fbb428ce46 /blob.go | |
| parent | 5590078e6ff04be425b4a833adb44a0845c0b52f (diff) | |
| parent | 9cd1d129bcd567ef65137783a603f8d898d8d933 (diff) | |
Merge remote-tracking branch 'libgit/master' into branch-iterator
Diffstat (limited to 'blob.go')
| -rw-r--r-- | blob.go | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -20,15 +20,16 @@ import ( type Blob struct { gitObject + cast_ptr *C.git_blob } func (v *Blob) Size() int64 { - return int64(C.git_blob_rawsize(v.ptr)) + return int64(C.git_blob_rawsize(v.cast_ptr)) } func (v *Blob) Contents() []byte { - size := C.int(C.git_blob_rawsize(v.ptr)) - buffer := unsafe.Pointer(C.git_blob_rawcontent(v.ptr)) + size := C.int(C.git_blob_rawsize(v.cast_ptr)) + buffer := unsafe.Pointer(C.git_blob_rawcontent(v.cast_ptr)) return C.GoBytes(buffer, size) } @@ -55,13 +56,13 @@ func blobChunkCb(buffer *C.char, maxLen C.size_t, payload unsafe.Pointer) int { data := (*BlobCallbackData)(payload) goBuf, err := data.Callback(int(maxLen)) if err == io.EOF { - return 1 + return 0 } else if err != nil { data.Error = err return -1 } - C.memcpy(unsafe.Pointer(buffer), unsafe.Pointer(&goBuf), C.size_t(len(goBuf))) - return 0 + C.memcpy(unsafe.Pointer(buffer), unsafe.Pointer(&goBuf[0]), C.size_t(len(goBuf))) + return len(goBuf) } func (repo *Repository) CreateBlobFromChunks(hintPath string, callback BlobChunkCallback) (*Oid, error) { |
