Properly wrap ODB objects

This commit is contained in:
Vicent Marti 2013-03-06 17:15:28 +01:00
parent 4819b36b67
commit 3ca8077334
1 changed files with 18 additions and 4 deletions

22
odb.go
View File

@ -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
} }