Fix an obvious memory leak

This commit is contained in:
lericson 2009-09-07 02:22:55 +02:00
parent 3c7fc65e38
commit 2c4d9acb3b

View File

@ -189,7 +189,7 @@ static PyObject *_PylibMC_RunSetCommand(PylibMC_Client *self,
char *key; char *key;
size_t key_sz; size_t key_sz;
memcached_return rc; memcached_return rc;
PyObject *val; PyObject *val, *tmp;
PyObject *retval = NULL; PyObject *retval = NULL;
PyObject *store_val = NULL; PyObject *store_val = NULL;
unsigned int time = 0; unsigned int time = 0;
@ -211,13 +211,19 @@ static PyObject *_PylibMC_RunSetCommand(PylibMC_Client *self,
Py_INCREF(store_val); Py_INCREF(store_val);
} else if (PyBool_Check(val)) { } else if (PyBool_Check(val)) {
store_flags |= PYLIBMC_FLAG_BOOL; store_flags |= PYLIBMC_FLAG_BOOL;
store_val = PyObject_Str(PyNumber_Int(val)); tmp = PyNumber_Int(val);
store_val = PyObject_Str(tmp);
Py_DECREF(tmp);
} else if (PyInt_Check(val)) { } else if (PyInt_Check(val)) {
store_flags |= PYLIBMC_FLAG_INTEGER; store_flags |= PYLIBMC_FLAG_INTEGER;
store_val = PyObject_Str(PyNumber_Int(val)); tmp = PyNumber_Int(val);
store_val = PyObject_Str(tmp);
Py_DECREF(tmp);
} else if (PyLong_Check(val)) { } else if (PyLong_Check(val)) {
store_flags |= PYLIBMC_FLAG_LONG; store_flags |= PYLIBMC_FLAG_LONG;
store_val = PyObject_Str(PyNumber_Long(val)); tmp = PyNumber_Long(val);
store_val = PyObject_Str(tmp);
Py_DECREF(tmp);
} else { } else {
Py_INCREF(val); Py_INCREF(val);
store_flags |= PYLIBMC_FLAG_PICKLE; store_flags |= PYLIBMC_FLAG_PICKLE;