diff options
| author | Vicent Martà <[email protected]> | 2013-03-05 16:59:40 -0800 |
|---|---|---|
| committer | Vicent Martà <[email protected]> | 2013-03-05 16:59:40 -0800 |
| commit | 9b6d570748ae51bf38e3192f9a5de45bc68b23c6 (patch) | |
| tree | d4494ed38a76fa9c69f4fc00513340ff0096f980 /odb.go | |
| parent | 2885e3fe0cc403514d0ade13bae5f430b2e9252e (diff) | |
| parent | d43561fbf711896f5ce33f409c6000946416a82b (diff) | |
Merge pull request #3 from carlosmn/finalizers
Free Git objects via finalizers or manually
Diffstat (limited to 'odb.go')
| -rw-r--r-- | odb.go | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -49,7 +49,7 @@ func (v *Odb) Read(oid *Oid) (obj *OdbObject, err error) { return nil, LastError() } - runtime.SetFinalizer(obj, freeOdbObject) + runtime.SetFinalizer(obj, (*OdbObject).Free) return } @@ -57,8 +57,9 @@ type OdbObject struct { ptr *C.git_odb_object } -func freeOdbObject(obj *OdbObject) { - C.git_odb_object_free(obj.ptr) +func (v *OdbObject) Free() { + runtime.SetFinalizer(v, nil) + C.git_odb_object_free(v.ptr) } func (v *OdbObject) Type() int { |
