refs: implement reference dealloc
This commit is contained in:
1
TODO.txt
1
TODO.txt
@@ -5,7 +5,6 @@ Signature
|
|||||||
|
|
||||||
References
|
References
|
||||||
==========
|
==========
|
||||||
- Free the git_reference struct.
|
|
||||||
- Wrap missing functions: git_reference_foreach, git_reference_is_packed,
|
- Wrap missing functions: git_reference_foreach, git_reference_is_packed,
|
||||||
git_reference_reload
|
git_reference_reload
|
||||||
|
|
||||||
|
11
pygit2.c
11
pygit2.c
@@ -845,7 +845,7 @@ Repository_create_reference(Repository *self, PyObject *args)
|
|||||||
/* 2- Create the reference */
|
/* 2- Create the reference */
|
||||||
err = git_reference_create_oid(&c_reference, self->repo, c_name, &oid, 0);
|
err = git_reference_create_oid(&c_reference, self->repo, c_name, &oid, 0);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return Error_set(err);
|
return Error_set(err);
|
||||||
|
|
||||||
/* 3- Make an instance of Reference and return it */
|
/* 3- Make an instance of Reference and return it */
|
||||||
return wrap_reference(c_reference);
|
return wrap_reference(c_reference);
|
||||||
@@ -2364,6 +2364,13 @@ static PyTypeObject WalkerType = {
|
|||||||
0, /* tp_new */
|
0, /* tp_new */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
Reference_dealloc(Reference *self)
|
||||||
|
{
|
||||||
|
git_reference_free(self->reference);
|
||||||
|
PyObject_Del(self);
|
||||||
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
Reference_delete(Reference *self, PyObject *args)
|
Reference_delete(Reference *self, PyObject *args)
|
||||||
{
|
{
|
||||||
@@ -2569,7 +2576,7 @@ static PyTypeObject ReferenceType = {
|
|||||||
"pygit2.Reference", /* tp_name */
|
"pygit2.Reference", /* tp_name */
|
||||||
sizeof(Reference), /* tp_basicsize */
|
sizeof(Reference), /* tp_basicsize */
|
||||||
0, /* tp_itemsize */
|
0, /* tp_itemsize */
|
||||||
0, /* tp_dealloc */
|
(destructor)Reference_dealloc, /* tp_dealloc */
|
||||||
0, /* tp_print */
|
0, /* tp_print */
|
||||||
0, /* tp_getattr */
|
0, /* tp_getattr */
|
||||||
0, /* tp_setattr */
|
0, /* tp_setattr */
|
||||||
|
Reference in New Issue
Block a user