From 446f7ffa0ff7b89f4ee8f74d4ea7183c8072ecba Mon Sep 17 00:00:00 2001 From: Alexandre Vassalotti Date: Fri, 23 Jan 2009 04:43:46 +0000 Subject: Remove unnecessary copying in load_long(). --- Modules/_pickle.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/Modules/_pickle.c b/Modules/_pickle.c index 02a3e44..435969d 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -2881,7 +2881,7 @@ static int load_long(UnpicklerObject *self) { PyObject *value; - char *s, *ss; + char *s; Py_ssize_t len; if ((len = unpickler_readline(self, &s)) < 0) @@ -2894,17 +2894,9 @@ load_long(UnpicklerObject *self) compatibility with Python 3.0.0, we don't actually *require* the 'L' to be present. */ if (s[len-2] == 'L') { - ss = (char *)PyMem_Malloc(len-1); - if (ss == NULL) { - PyErr_NoMemory(); - return -1; - } - strncpy(ss, s, len-2); - ss[len-2] = '\0'; - + s[len-2] = '\0'; /* XXX: Should the base argument explicitly set to 10? */ - value = PyLong_FromString(ss, NULL, 0); - PyMem_Free(ss); + value = PyLong_FromString(s, NULL, 0); } else { value = PyLong_FromString(s, NULL, 0); -- cgit v0.12