[Numpy-svn] r8108 - branches/1.4.x/numpy/core/src/multiarray
numpy-svn at scipy.org
numpy-svn at scipy.org
Thu Feb 11 20:18:19 EST 2010
Author: oliphant
Date: 2010-02-11 19:18:19 -0600 (Thu, 11 Feb 2010)
New Revision: 8108
Modified:
branches/1.4.x/numpy/core/src/multiarray/descriptor.c
Log:
Fix 1.4.x branch so that it also does not add the metadata info to the dtype pickle unless it has to. This will allow 1.4.x pickles to be compatible with 1.3.x pickles.
Modified: branches/1.4.x/numpy/core/src/multiarray/descriptor.c
===================================================================
--- branches/1.4.x/numpy/core/src/multiarray/descriptor.c 2010-02-12 00:37:17 UTC (rev 8107)
+++ branches/1.4.x/numpy/core/src/multiarray/descriptor.c 2010-02-12 01:18:19 UTC (rev 8108)
@@ -1641,8 +1641,18 @@
endian = '>';
}
}
- state = PyTuple_New(9);
- PyTuple_SET_ITEM(state, 0, PyInt_FromLong(version));
+
+ if (self->metadata) {
+ state = PyTuple_New(9);
+ PyTuple_SET_ITEM(state, 0, PyInt_FromLong(version));
+ Py_INCREF(self->metadata);
+ PyTuple_SET_ITEM(state, 8, self->metadata);
+ }
+ else {
+ state = PyTuple_New(8);
+ PyTuple_SET_ITEM(state, 0, PyInt_FromLong(3));
+ }
+
PyTuple_SET_ITEM(state, 1, PyString_FromFormat("%c", endian));
PyTuple_SET_ITEM(state, 2, arraydescr_subdescr_get(self));
if (self->names) {
@@ -1670,14 +1680,6 @@
PyTuple_SET_ITEM(state, 5, PyInt_FromLong(elsize));
PyTuple_SET_ITEM(state, 6, PyInt_FromLong(alignment));
PyTuple_SET_ITEM(state, 7, PyInt_FromLong(self->hasobject));
- if (self->metadata) {
- Py_INCREF(self->metadata);
- PyTuple_SET_ITEM(state, 8, self->metadata);
- }
- else {
- PyTuple_SET_ITEM(state, 8, Py_None);
- Py_INCREF(Py_None);
- }
PyTuple_SET_ITEM(ret, 2, state);
return ret;
More information about the Numpy-svn
mailing list