Commit ac5687a5 authored by Tim Peters's avatar Tim Peters

Minor cleanup, mostly adding horizontal whitespace, and breaking apart

embedded assignments, for readability.
parent 3c67d795
...@@ -2280,35 +2280,34 @@ Pickle_getvalue(Picklerobject *self, PyObject *args) ...@@ -2280,35 +2280,34 @@ Pickle_getvalue(Picklerobject *self, PyObject *args)
l=data->length; l=data->length;
/* set up an array to hold get/put status */ /* set up an array to hold get/put status */
if ((lm=PyDict_Size(self->memo)) < 0) return NULL; lm = PyDict_Size(self->memo);
if (lm < 0) return NULL;
lm++; lm++;
if (! (have_get=malloc((lm)*sizeof(char)))) return PyErr_NoMemory(); have_get = malloc(lm);
memset(have_get,0,lm); if (have_get == NULL) return PyErr_NoMemory();
memset(have_get, 0, lm);
/* Scan for gets. */ /* Scan for gets. */
for (rsize=0, i=l; --i >= 0; ) { for (rsize = 0, i = l; --i >= 0; ) {
k=data->data[i]; k = data->data[i];
if (PyString_Check(k)) { if (PyString_Check(k))
rsize += PyString_GET_SIZE(k); rsize += PyString_GET_SIZE(k);
}
else if (PyInt_Check(k)) { /* put */ else if (PyInt_Check(k)) { /* put */
ik=PyInt_AS_LONG((PyIntObject*)k); ik = PyInt_AS_LONG((PyIntObject*)k);
if (ik >= lm || ik==0) { if (ik >= lm || ik == 0) {
PyErr_SetString(PicklingError, PyErr_SetString(PicklingError,
"Invalid get data"); "Invalid get data");
return NULL; return NULL;
} }
if (have_get[ik]) { /* with matching get */ if (have_get[ik]) /* with matching get */
if (ik < 256) rsize += 2; rsize += ik < 256 ? 2 : 5;
else rsize+=5;
}
} }
else if (! (PyTuple_Check(k) && else if (! (PyTuple_Check(k) &&
PyTuple_GET_SIZE(k) == 2 && PyTuple_GET_SIZE(k) == 2 &&
PyInt_Check((k=PyTuple_GET_ITEM(k,0)))) PyInt_Check((k = PyTuple_GET_ITEM(k, 0))))
) { ) {
PyErr_SetString(PicklingError, PyErr_SetString(PicklingError,
"Unexpected data in internal list"); "Unexpected data in internal list");
...@@ -2316,36 +2315,37 @@ Pickle_getvalue(Picklerobject *self, PyObject *args) ...@@ -2316,36 +2315,37 @@ Pickle_getvalue(Picklerobject *self, PyObject *args)
} }
else { /* put */ else { /* put */
ik=PyInt_AS_LONG((PyIntObject*)k); ik = PyInt_AS_LONG((PyIntObject *)k);
if (ik >= lm || ik==0) { if (ik >= lm || ik == 0) {
PyErr_SetString(PicklingError, PyErr_SetString(PicklingError,
"Invalid get data"); "Invalid get data");
return NULL; return NULL;
} }
have_get[ik]=1; have_get[ik] = 1;
if (ik < 256) rsize += 2; rsize += ik < 256 ? 2 : 5;
else rsize+=5;
} }
} }
/* Now generate the result */ /* Now generate the result */
if (!( r=PyString_FromStringAndSize(NULL,rsize))) goto err; r = PyString_FromStringAndSize(NULL, rsize);
s=PyString_AS_STRING((PyStringObject*)r); if (r == NULL) goto err;
s = PyString_AS_STRING((PyStringObject *)r);
for (i=0; i<l; i++) { for (i = 0; i < l; i++) {
k=data->data[i]; k = data->data[i];
if (PyString_Check(k)) { if (PyString_Check(k)) {
ssize=PyString_GET_SIZE(k); ssize = PyString_GET_SIZE(k);
if (ssize) { if (ssize) {
p=PyString_AS_STRING((PyStringObject*)k); p=PyString_AS_STRING((PyStringObject *)k);
while (--ssize >= 0) *s++=*p++; while (--ssize >= 0)
*s++ = *p++;
} }
} }
else if (PyTuple_Check(k)) { /* get */ else if (PyTuple_Check(k)) { /* get */
ik=PyInt_AS_LONG((PyIntObject*)PyTuple_GET_ITEM(k,0)); ik = PyInt_AS_LONG((PyIntObject *)
PyTuple_GET_ITEM(k, 0));
if (ik < 256) { if (ik < 256) {
*s++ = BINGET; *s++ = BINGET;
*s++ = (int)(ik & 0xff); *s++ = (int)(ik & 0xff);
...@@ -2360,7 +2360,7 @@ Pickle_getvalue(Picklerobject *self, PyObject *args) ...@@ -2360,7 +2360,7 @@ Pickle_getvalue(Picklerobject *self, PyObject *args)
} }
else { /* put */ else { /* put */
ik=PyInt_AS_LONG((PyIntObject*)k); ik = PyInt_AS_LONG((PyIntObject*)k);
if (have_get[ik]) { /* with matching get */ if (have_get[ik]) { /* with matching get */
if (ik < 256) { if (ik < 256) {
...@@ -2376,12 +2376,11 @@ Pickle_getvalue(Picklerobject *self, PyObject *args) ...@@ -2376,12 +2376,11 @@ Pickle_getvalue(Picklerobject *self, PyObject *args)
} }
} }
} }
} }
if (clear) { if (clear) {
PyDict_Clear(self->memo); PyDict_Clear(self->memo);
Pdata_clear(data,0); Pdata_clear(data, 0);
} }
free(have_get); free(have_get);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment