From 3f3bb3d3c9a616fa22b2cf7ca70c9b05295f61f3 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 19 Aug 1996 22:07:17 +0000 Subject: [PATCH] Added *PyMarshal_WriteObjectToString() (moved the relevant code there from marshal_loads()). --- Python/marshal.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/Python/marshal.c b/Python/marshal.c index 4a2701a3eec..08ad79008c8 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -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 *