refs: implement reference dealloc

This commit is contained in:
J. David Ibáñez 2011-12-20 22:19:15 +01:00
parent 5986688197
commit 584a8b1473
2 changed files with 9 additions and 3 deletions

@ -5,7 +5,6 @@ Signature
References
==========
- Free the git_reference struct.
- Wrap missing functions: git_reference_foreach, git_reference_is_packed,
git_reference_reload

@ -845,7 +845,7 @@ Repository_create_reference(Repository *self, PyObject *args)
/* 2- Create the reference */
err = git_reference_create_oid(&c_reference, self->repo, c_name, &oid, 0);
if (err < 0)
return Error_set(err);
return Error_set(err);
/* 3- Make an instance of Reference and return it */
return wrap_reference(c_reference);
@ -2364,6 +2364,13 @@ static PyTypeObject WalkerType = {
0, /* tp_new */
};
static void
Reference_dealloc(Reference *self)
{
git_reference_free(self->reference);
PyObject_Del(self);
}
static PyObject *
Reference_delete(Reference *self, PyObject *args)
{
@ -2569,7 +2576,7 @@ static PyTypeObject ReferenceType = {
"pygit2.Reference", /* tp_name */
sizeof(Reference), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
(destructor)Reference_dealloc, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */