]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added *PyMarshal_WriteObjectToString() (moved the relevant code there
authorGuido van Rossum <guido@python.org>
Mon, 19 Aug 1996 22:07:17 +0000 (22:07 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 19 Aug 1996 22:07:17 +0000 (22:07 +0000)
from marshal_loads()).

Python/marshal.c

index 4a2701a3eec321d9a4175dc7a6b9bc7f00df572c..08ad79008c850bc5e393a32f993c1b9da5c69623 100644 (file)
@@ -535,6 +535,30 @@ rds_object(str, len)
        return r_object(&rf);
 }
 
+object *
+PyMarshal_WriteObjectToString(x) /* wrs_object() */
+       object *x;
+{
+       WFILE wf;
+       wf.fp = NULL;
+       wf.str = newsizedstringobject((char *)NULL, 50);
+       if (wf.str == NULL)
+               return NULL;
+       wf.ptr = GETSTRINGVALUE((stringobject *)wf.str);
+       wf.end = wf.ptr + getstringsize(wf.str);
+       wf.error = 0;
+       w_object(x, &wf);
+       if (wf.str != NULL)
+               resizestring(&wf.str,
+                   (int) (wf.ptr - GETSTRINGVALUE((stringobject *)wf.str)));
+       if (wf.error) {
+               XDECREF(wf.str);
+               err_setstr(ValueError, "unmarshallable object");
+               return NULL;
+       }
+       return wf.str;
+}
+
 /* And an interface for Python programs... */
 
 static object *
@@ -595,27 +619,10 @@ marshal_dumps(self, args)
        object *self;
        object *args;
 {
-       WFILE wf;
        object *x;
        if (!getargs(args, "O", &x))
                return NULL;
-       wf.fp = NULL;
-       wf.str = newsizedstringobject((char *)NULL, 50);
-       if (wf.str == NULL)
-               return NULL;
-       wf.ptr = GETSTRINGVALUE((stringobject *)wf.str);
-       wf.end = wf.ptr + getstringsize(wf.str);
-       wf.error = 0;
-       w_object(x, &wf);
-       if (wf.str != NULL)
-               resizestring(&wf.str,
-                   (int) (wf.ptr - GETSTRINGVALUE((stringobject *)wf.str)));
-       if (wf.error) {
-               XDECREF(wf.str);
-               err_setstr(ValueError, "unmarshallable object");
-               return NULL;
-       }
-       return wf.str;
+       return PyMarshal_WriteObjectToString(x);
 }
 
 static object *