{
if (self->handle != NULL)
snd_ctl_close(self->handle);
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyGetSetDef pyalsacontrol_getseters[] = {
PyObject *d, *d1, *l1, *o;
int i;
- pyalsacontrol_type.tp_free = PyObject_GC_Del;
-
if (PyType_Ready(&pyalsacontrol_type) < 0)
return MOD_ERROR_VAL;
{
if (self->handle != NULL)
snd_hctl_close(self->handle);
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyGetSetDef pyalsahcontrol_getseters[] = {
pyalsahcontrolelement_dealloc(struct pyalsahcontrolelement *self)
{
if (self->elem) {
- Py_XDECREF(self->callback);
+ Py_DECREF(self->callback);
snd_hctl_elem_set_callback(self->elem, NULL);
}
- if (self->pyhandle) {
- Py_XDECREF(self->pyhandle);
- }
+ Py_XDECREF(self->pyhandle);
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyGetSetDef pyalsahcontrolelement_getseters[] = {
{
if (self->info)
snd_ctl_elem_info_free(self->info);
- if (self->pyelem) {
- Py_XDECREF(self->pyelem);
- }
+ Py_XDECREF(self->pyelem);
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyGetSetDef pyalsahcontrolinfo_getseters[] = {
{
if (self->value)
snd_ctl_elem_value_free(self->value);
- if (self->pyelem) {
- Py_XDECREF(self->pyelem);
- }
+ Py_XDECREF(self->pyelem);
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyGetSetDef pyalsahcontrolvalue_getseters[] = {
PyObject *d, *d1, *l1, *o;
int i;
- pyalsahcontrol_type.tp_free = PyObject_GC_Del;
- pyalsahcontrolelement_type.tp_free = PyObject_GC_Del;
- pyalsahcontrolinfo_type.tp_free = PyObject_GC_Del;
- pyalsahcontrolvalue_type.tp_free = PyObject_GC_Del;
-
if (PyType_Ready(&pyalsahcontrol_type) < 0)
return MOD_ERROR_VAL;
if (PyType_Ready(&pyalsahcontrolelement_type) < 0)
{
if (self->handle != NULL)
snd_mixer_close(self->handle);
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyGetSetDef pyalsamixer_getseters[] = {
Py_XDECREF(self->callback);
snd_mixer_elem_set_callback(self->elem, NULL);
}
- if (self->pyhandle) {
- Py_XDECREF(self->pyhandle);
- }
+ Py_XDECREF(self->pyhandle);
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
static PyGetSetDef pyalsamixerelement_getseters[] = {
PyObject *d, *d1, *l1, *o;
int i;
- pyalsamixer_type.tp_free = PyObject_GC_Del;
- pyalsamixerelement_type.tp_free = PyObject_GC_Del;
-
if (PyType_Ready(&pyalsamixer_type) < 0)
return MOD_ERROR_VAL;
if (PyType_Ready(&pyalsamixerelement_type) < 0)
SeqEvent_dealloc(SeqEventObject *self) {
FREECHECKED("event", self->event);
FREECHECKED("buff", self->buff);
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
/** alsaseq.SeqEvent type attribute: __doc__ */
snd_seq_close(self->handle);
self->handle = NULL;
}
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
/** alsaseq.Sequencer name attribute: __doc__ */
{
PyObject *module;
- SeqEventType.tp_free = PyObject_GC_Del;
- SequencerType.tp_free = PyObject_GC_Del;
-
if (PyType_Ready(&ConstantType) < 0)
return MOD_ERROR_VAL;