Commit 3ca1aa5e authored by Jim Fulton's avatar Jim Fulton

Cosmetic changes from 1.5.1 plus change to format used to

non-binary pickle floats.
parent d80cd1df
/* /*
$Id: cPickle.c,v 1.50 1998/03/25 12:39:28 jim Exp $ $Id: cPickle.c,v 1.51 1998/05/05 14:56:54 jim Exp $
Copyright Copyright
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
static char cPickle_module_documentation[] = static char cPickle_module_documentation[] =
"C implementation and optimization of the Python pickle module\n" "C implementation and optimization of the Python pickle module\n"
"\n" "\n"
"$Id: cPickle.c,v 1.50 1998/03/25 12:39:28 jim Exp $\n" "$Id: cPickle.c,v 1.51 1998/05/05 14:56:54 jim Exp $\n"
; ;
#include "Python.h" #include "Python.h"
...@@ -195,15 +195,14 @@ cPickle_PyMapping_HasKey(PyObject *o, PyObject *key) { ...@@ -195,15 +195,14 @@ cPickle_PyMapping_HasKey(PyObject *o, PyObject *key) {
return 0; return 0;
} }
#define PyErr_Format PyErr_JFFormat
static static
PyObject * PyObject *
#ifdef HAVE_STDARG_PROTOTYPES #ifdef HAVE_STDARG_PROTOTYPES
/* VARARGS 2 */ /* VARARGS 2 */
PyErr_Format(PyObject *ErrType, char *stringformat, char *format, ...) { cPickle_ErrFormat(PyObject *ErrType, char *stringformat, char *format, ...) {
#else #else
/* VARARGS */ /* VARARGS */
PyErr_Format(va_alist) va_dcl { cPickle_ErrFormat(va_alist) va_dcl {
#endif #endif
va_list va; va_list va;
PyObject *args=0, *retval=0; PyObject *args=0, *retval=0;
...@@ -721,7 +720,7 @@ whichmodule(PyObject *class_map, PyObject *global, PyObject *global_name) { ...@@ -721,7 +720,7 @@ whichmodule(PyObject *class_map, PyObject *global, PyObject *global_name) {
/* /*
if (!j) { if (!j) {
PyErr_Format(PicklingError, "Could not find module for %s.", cPickle_ErrFormat(PicklingError, "Could not find module for %s.",
"O", global_name); "O", global_name);
return NULL; return NULL;
} }
...@@ -923,7 +922,7 @@ save_float(Picklerobject *self, PyObject *args) { ...@@ -923,7 +922,7 @@ save_float(Picklerobject *self, PyObject *args) {
{ {
char c_str[250]; char c_str[250];
c_str[0] = FLOAT; c_str[0] = FLOAT;
sprintf(c_str + 1, "%.12g\n", x); sprintf(c_str + 1, "%.17g\n", x);
if ((*self->write_func)(self, c_str, strlen(c_str)) < 0) if ((*self->write_func)(self, c_str, strlen(c_str)) < 0)
return -1; return -1;
...@@ -1638,7 +1637,7 @@ save(Picklerobject *self, PyObject *args, int pers_save) { ...@@ -1638,7 +1637,7 @@ save(Picklerobject *self, PyObject *args, int pers_save) {
} }
if (!PyTuple_Check(t)) { if (!PyTuple_Check(t)) {
PyErr_Format(PicklingError, "Value returned by %s must " cPickle_ErrFormat(PicklingError, "Value returned by %s must "
"be a tuple", "O", __reduce__); "be a tuple", "O", __reduce__);
goto finally; goto finally;
} }
...@@ -1646,7 +1645,7 @@ save(Picklerobject *self, PyObject *args, int pers_save) { ...@@ -1646,7 +1645,7 @@ save(Picklerobject *self, PyObject *args, int pers_save) {
size = PyTuple_Size(t); size = PyTuple_Size(t);
if ((size != 3) && (size != 2)) { if ((size != 3) && (size != 2)) {
PyErr_Format(PicklingError, "tuple returned by %s must " cPickle_ErrFormat(PicklingError, "tuple returned by %s must "
"contain only two or three elements", "O", __reduce__); "contain only two or three elements", "O", __reduce__);
goto finally; goto finally;
} }
...@@ -1660,7 +1659,7 @@ save(Picklerobject *self, PyObject *args, int pers_save) { ...@@ -1660,7 +1659,7 @@ save(Picklerobject *self, PyObject *args, int pers_save) {
} }
UNLESS(PyTuple_Check(arg_tup) || arg_tup==Py_None) { UNLESS(PyTuple_Check(arg_tup) || arg_tup==Py_None) {
PyErr_Format(PicklingError, "Second element of tuple " cPickle_ErrFormat(PicklingError, "Second element of tuple "
"returned by %s must be a tuple", "O", __reduce__); "returned by %s must be a tuple", "O", __reduce__);
goto finally; goto finally;
} }
...@@ -1676,7 +1675,7 @@ save(Picklerobject *self, PyObject *args, int pers_save) { ...@@ -1676,7 +1675,7 @@ save(Picklerobject *self, PyObject *args, int pers_save) {
} }
*/ */
PyErr_Format(PicklingError, "Cannot pickle %s objects.", cPickle_ErrFormat(PicklingError, "Cannot pickle %s objects.",
"O", (PyObject *)type); "O", (PyObject *)type);
finally: finally:
...@@ -2568,7 +2567,8 @@ Instance_New(PyObject *cls, PyObject *args) { ...@@ -2568,7 +2567,8 @@ Instance_New(PyObject *cls, PyObject *args) {
if (!has_key) if (!has_key)
if(!(safe = PyObject_GetAttr(cls, __safe_for_unpickling___str)) || if(!(safe = PyObject_GetAttr(cls, __safe_for_unpickling___str)) ||
!PyObject_IsTrue(safe)) { !PyObject_IsTrue(safe)) {
PyErr_Format(UnpicklingError, "%s is not safe for unpickling", "O", cls); cPickle_ErrFormat(UnpicklingError,
"%s is not safe for unpickling", "O", cls);
Py_XDECREF(safe); Py_XDECREF(safe);
return NULL; return NULL;
} }
...@@ -3527,7 +3527,7 @@ load(Unpicklerobject *self) { ...@@ -3527,7 +3527,7 @@ load(Unpicklerobject *self) {
continue; continue;
default: default:
PyErr_Format(UnpicklingError, "invalid load key, '%s'.", cPickle_ErrFormat(UnpicklingError, "invalid load key, '%s'.",
"c", s[0]); "c", s[0]);
goto err; goto err;
} }
...@@ -3824,7 +3824,7 @@ noload(Unpicklerobject *self) { ...@@ -3824,7 +3824,7 @@ noload(Unpicklerobject *self) {
continue; continue;
default: default:
PyErr_Format(UnpicklingError, "invalid load key, '%s'.", cPickle_ErrFormat(UnpicklingError, "invalid load key, '%s'.",
"c", s[0]); "c", s[0]);
goto err; goto err;
} }
...@@ -3907,8 +3907,8 @@ newUnpicklerobject(PyObject *f) { ...@@ -3907,8 +3907,8 @@ newUnpicklerobject(PyObject *f) {
self->marks_size = 0; self->marks_size = 0;
self->buf_size = 0; self->buf_size = 0;
self->read = NULL; self->read = NULL;
self->readline = NULL; self->readline = NULL;
self->class_map = NULL; self->class_map = NULL;
UNLESS(self->memo = PyDict_New()) { UNLESS(self->memo = PyDict_New()) {
Py_XDECREF((PyObject *)self); Py_XDECREF((PyObject *)self);
...@@ -4308,7 +4308,7 @@ init_stuff(PyObject *module, PyObject *module_dict) { ...@@ -4308,7 +4308,7 @@ init_stuff(PyObject *module, PyObject *module_dict) {
void void
initcPickle() { initcPickle() {
PyObject *m, *d, *v; PyObject *m, *d, *v;
char *rev="$Revision: 1.50 $"; char *rev="$Revision: 1.51 $";
PyObject *format_version; PyObject *format_version;
PyObject *compatible_formats; PyObject *compatible_formats;
......
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