Simplify set_behaviors.
This commit is contained in:
parent
732f181cb7
commit
391878b095
@ -684,23 +684,29 @@ static PyObject *PylibMC_Client_set_behaviors(PylibMC_Client *self,
|
|||||||
PylibMC_Behavior *b;
|
PylibMC_Behavior *b;
|
||||||
|
|
||||||
for (b = PylibMC_behaviors; b->name != NULL; b++) {
|
for (b = PylibMC_behaviors; b->name != NULL; b++) {
|
||||||
if (PyMapping_HasKeyString(behaviors, b->name)) {
|
PyObject *v;
|
||||||
PyObject *v = PyMapping_GetItemString(behaviors, b->name);
|
memcached_return r;
|
||||||
memcached_return r;
|
|
||||||
|
|
||||||
if (!PyInt_Check(v)) {
|
if (!PyMapping_HasKeyString(behaviors, b->name)) {
|
||||||
PyErr_Format(PyExc_TypeError, "behavior %s must be int",
|
continue;
|
||||||
b->name);
|
}
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
r = memcached_behavior_set(self->mc, b->flag, PyInt_AS_LONG(v));
|
v = PyMapping_GetItemString(behaviors, b->name);
|
||||||
Py_DECREF(v);
|
|
||||||
if (r != MEMCACHED_SUCCESS) {
|
if (v == NULL) {
|
||||||
PyErr_Format(PylibMCExc_MemcachedError,
|
goto error;
|
||||||
"memcached_behavior_set returned %d", r);
|
} else if (!PyInt_Check(v)) {
|
||||||
goto error;
|
PyErr_Format(PyExc_TypeError, "behavior %s must be int",
|
||||||
}
|
b->name);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
r = memcached_behavior_set(self->mc, b->flag, (uint64_t)PyInt_AS_LONG(v));
|
||||||
|
Py_DECREF(v);
|
||||||
|
if (r != MEMCACHED_SUCCESS) {
|
||||||
|
PyErr_Format(PylibMCExc_MemcachedError,
|
||||||
|
"memcached_behavior_set returned %d", r);
|
||||||
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user