Write adds data to the indexer.
(data []byte)
| 54 | |
| 55 | // Write adds data to the indexer. |
| 56 | func (indexer *Indexer) Write(data []byte) (int, error) { |
| 57 | header := (*reflect.SliceHeader)(unsafe.Pointer(&data)) |
| 58 | ptr := unsafe.Pointer(header.Data) |
| 59 | size := C.size_t(header.Len) |
| 60 | |
| 61 | runtime.LockOSThread() |
| 62 | defer runtime.UnlockOSThread() |
| 63 | |
| 64 | ret := C.git_indexer_append(indexer.ptr, ptr, size, &indexer.stats) |
| 65 | runtime.KeepAlive(indexer) |
| 66 | if ret < 0 { |
| 67 | return 0, MakeGitError(ret) |
| 68 | } |
| 69 | |
| 70 | return len(data), nil |
| 71 | } |
| 72 | |
| 73 | // Commit finalizes the pack and index. It resolves any pending deltas and |
| 74 | // writes out the index file. |