summaryrefslogtreecommitdiff
path: root/object.go
diff options
context:
space:
mode:
authorJesse Ezell <[email protected]>2014-04-04 00:30:05 -0700
committerJesse Ezell <[email protected]>2014-04-04 00:30:05 -0700
commitb00cb1a343b42130bd963ce5f6aff49527021259 (patch)
treef4d2ec2d5e4823ecce89092cd6748856c0318053 /object.go
parent4553b3ada6be15c47250bfb7948493b6cb88031b (diff)
parent9cd1d129bcd567ef65137783a603f8d898d8d933 (diff)
Merge remote-tracking branch 'libgit/master' into add-basic-diff-patch
Diffstat (limited to 'object.go')
-rw-r--r--object.go19
1 files changed, 14 insertions, 5 deletions
diff --git a/object.go b/object.go
index 090be1f..101d15e 100644
--- a/object.go
+++ b/object.go
@@ -48,7 +48,7 @@ func (t ObjectType) String() (string) {
}
func (o gitObject) Id() *Oid {
- return newOidFromC(C.git_commit_id(o.ptr))
+ return newOidFromC(C.git_object_id(o.ptr))
}
func (o gitObject) Type() ObjectType {
@@ -57,24 +57,33 @@ func (o gitObject) Type() ObjectType {
func (o *gitObject) Free() {
runtime.SetFinalizer(o, nil)
- C.git_commit_free(o.ptr)
+ C.git_object_free(o.ptr)
}
func allocObject(cobj *C.git_object) Object {
switch ObjectType(C.git_object_type(cobj)) {
case ObjectCommit:
- commit := &Commit{gitObject{cobj}}
+ commit := &Commit{
+ gitObject: gitObject{cobj},
+ cast_ptr: (*C.git_commit)(cobj),
+ }
runtime.SetFinalizer(commit, (*Commit).Free)
return commit
case ObjectTree:
- tree := &Tree{gitObject{cobj}}
+ tree := &Tree{
+ gitObject: gitObject{cobj},
+ cast_ptr: (*C.git_tree)(cobj),
+ }
runtime.SetFinalizer(tree, (*Tree).Free)
return tree
case ObjectBlob:
- blob := &Blob{gitObject{cobj}}
+ blob := &Blob{
+ gitObject: gitObject{cobj},
+ cast_ptr: (*C.git_blob)(cobj),
+ }
runtime.SetFinalizer(blob, (*Blob).Free)
return blob
}