]> granicus.if.org Git - python/commitdiff
.encode()/.decode() patch part 2.
authorMarc-André Lemburg <mal@egenix.com>
Thu, 8 Jul 2004 19:13:55 +0000 (19:13 +0000)
committerMarc-André Lemburg <mal@egenix.com>
Thu, 8 Jul 2004 19:13:55 +0000 (19:13 +0000)
Objects/stringobject.c
Objects/unicodeobject.c

index 866e7e84ba5675f7ea0a876b6804ca2f1c87bb7f..29562a9a8f317259dc65da79119f1745108275e6 100644 (file)
@@ -2678,6 +2678,8 @@ string_encode(PyStringObject *self, PyObject *args)
     if (!PyArg_ParseTuple(args, "|ss:encode", &encoding, &errors))
         return NULL;
     v = PyString_AsEncodedObject((PyObject *)self, encoding, errors);
+    if (v == NULL)
+        goto onError;
     if (!PyString_Check(v) && !PyUnicode_Check(v)) {
         PyErr_Format(PyExc_TypeError,
                      "encoder did not return a string/unicode object "
@@ -2687,6 +2689,9 @@ string_encode(PyStringObject *self, PyObject *args)
         return NULL;
     }
     return v;
+
+ onError:
+    return NULL;
 }
 
 
@@ -2710,6 +2715,8 @@ string_decode(PyStringObject *self, PyObject *args)
     if (!PyArg_ParseTuple(args, "|ss:decode", &encoding, &errors))
         return NULL;
     v = PyString_AsDecodedObject((PyObject *)self, encoding, errors);
+    if (v == NULL)
+        goto onError;
     if (!PyString_Check(v) && !PyUnicode_Check(v)) {
         PyErr_Format(PyExc_TypeError,
                      "decoder did not return a string/unicode object "
@@ -2719,6 +2726,9 @@ string_decode(PyStringObject *self, PyObject *args)
         return NULL;
     }
     return v;
+
+ onError:
+    return NULL;
 }
 
 
index 4550023a60d93ad58dc5839eb0737f6bbc343355..2952c95fcf2a2cbacfc1f05b529f818519c67722 100644 (file)
@@ -4935,6 +4935,8 @@ unicode_encode(PyUnicodeObject *self, PyObject *args)
     if (!PyArg_ParseTuple(args, "|ss:encode", &encoding, &errors))
         return NULL;
     v = PyUnicode_AsEncodedObject((PyObject *)self, encoding, errors);
+    if (v == NULL)
+        goto onError;
     if (!PyString_Check(v) && !PyUnicode_Check(v)) {
         PyErr_Format(PyExc_TypeError,
                      "encoder did not return a string/unicode object "
@@ -4944,6 +4946,9 @@ unicode_encode(PyUnicodeObject *self, PyObject *args)
         return NULL;
     }
     return v;
+
+ onError:
+    return NULL;
 }
 
 PyDoc_STRVAR(decode__doc__,
@@ -4966,6 +4971,8 @@ unicode_decode(PyStringObject *self, PyObject *args)
     if (!PyArg_ParseTuple(args, "|ss:decode", &encoding, &errors))
         return NULL;
     v = PyUnicode_AsDecodedObject((PyObject *)self, encoding, errors);
+    if (v == NULL)
+        goto onError;
     if (!PyString_Check(v) && !PyUnicode_Check(v)) {
         PyErr_Format(PyExc_TypeError,
                      "decoder did not return a string/unicode object "
@@ -4975,6 +4982,9 @@ unicode_decode(PyStringObject *self, PyObject *args)
         return NULL;
     }
     return v;
+
+ onError:
+    return NULL;
 }
 
 PyDoc_STRVAR(expandtabs__doc__,