mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-14 05:36:48 +03:00
DRY, moved case inside loop
This commit is contained in:
parent
a5aea42bc9
commit
5def1010c7
17
_imaging.c
17
_imaging.c
|
@ -393,36 +393,29 @@ getlist(PyObject* arg, int* length, const char* wrong_length, int type)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < n; i++) {
|
||||||
|
op = PySequence_Fast_GET_ITEM(seq, i);
|
||||||
|
// DRY, branch prediction is going to work _really_ well
|
||||||
|
// on this switch. And 3 fewer loops to copy/paste.
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case TYPE_UINT8:
|
case TYPE_UINT8:
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
op = PySequence_Fast_GET_ITEM(seq, i);
|
|
||||||
itemp = PyInt_AsLong(op);
|
itemp = PyInt_AsLong(op);
|
||||||
((UINT8*)list)[i] = CLIP(itemp);
|
((UINT8*)list)[i] = CLIP(itemp);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case TYPE_INT32:
|
case TYPE_INT32:
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
op = PySequence_Fast_GET_ITEM(seq, i);
|
|
||||||
itemp = PyInt_AsLong(op);
|
itemp = PyInt_AsLong(op);
|
||||||
((INT32*)list)[i] = itemp;
|
((INT32*)list)[i] = itemp;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case TYPE_FLOAT32:
|
case TYPE_FLOAT32:
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
op = PySequence_Fast_GET_ITEM(seq, i);
|
|
||||||
dtemp = PyFloat_AsDouble(op);
|
dtemp = PyFloat_AsDouble(op);
|
||||||
((FLOAT32*)list)[i] = (FLOAT32) dtemp;
|
((FLOAT32*)list)[i] = (FLOAT32) dtemp;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case TYPE_DOUBLE:
|
case TYPE_DOUBLE:
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
op = PySequence_Fast_GET_ITEM(seq, i);
|
|
||||||
dtemp = PyFloat_AsDouble(op);
|
dtemp = PyFloat_AsDouble(op);
|
||||||
((double*)list)[i] = (double) dtemp;
|
((double*)list)[i] = (double) dtemp;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (length)
|
if (length)
|
||||||
*length = n;
|
*length = n;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user