Properly wrap ODB objects
This commit is contained in:
parent
4819b36b67
commit
3ca8077334
22
odb.go
22
odb.go
|
@ -62,11 +62,25 @@ func (v *OdbObject) Free() {
|
||||||
C.git_odb_object_free(v.ptr)
|
C.git_odb_object_free(v.ptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *OdbObject) Type() int {
|
func (object *OdbObject) Id() (oid *Oid) {
|
||||||
return int(C.git_odb_object_type(v.ptr))
|
return newOidFromC(C.git_odb_object_id(object.ptr))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *OdbObject) Size() int64 {
|
func (object *OdbObject) Len() (len uint64) {
|
||||||
return int64(C.git_odb_object_size(v.ptr))
|
return uint64(C.git_odb_object_size(object.ptr))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (object *OdbObject) Data() (data []byte) {
|
||||||
|
var c_blob unsafe.Pointer = C.git_odb_object_data(object.ptr)
|
||||||
|
var blob []byte
|
||||||
|
|
||||||
|
len := int(C.git_odb_object_size(object.ptr))
|
||||||
|
|
||||||
|
sliceHeader := (*reflect.SliceHeader)((unsafe.Pointer(&blob)))
|
||||||
|
sliceHeader.Cap = len
|
||||||
|
sliceHeader.Len = len
|
||||||
|
sliceHeader.Data = uintptr(c_blob)
|
||||||
|
|
||||||
|
return blob
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue