Core and Builtins
-----------------
+ - Issue #12291: You can now load multiple marshalled objects from a stream,
+ with other data interleaved between marshalled objects.
+
+- Issue #12356: When required positional or keyword-only arguments are not
+ given, produce a informative error message which includes the name(s) of the
+ missing arguments.
+
+- Issue #12370: Fix super with not arguments when __class__ is overriden in the
+ class body.
+
- Issue #12084: os.stat on Windows now works properly with relative symbolic
links when called from any directory.
int error; /* see WFERR_* values */
int depth;
/* If fp == NULL, the following are valid: */
+ PyObject * readable; /* Stream-like object being read from */
PyObject *str;
+ PyObject *current_filename;
char *ptr;
char *end;
- PyObject *strings; /* dict on marshal, list on unmarshal */
int version;
} WFILE;
{
RFILE rf;
assert(fp);
+ rf.readable = NULL;
rf.fp = fp;
- rf.strings = NULL;
+ rf.current_filename = NULL;
rf.end = rf.ptr = NULL;
return r_short(&rf);
}
{
RFILE rf;
rf.fp = fp;
- rf.strings = NULL;
+ rf.readable = NULL;
+ rf.current_filename = NULL;
rf.ptr = rf.end = NULL;
return r_long(&rf);
}
RFILE rf;
PyObject *result;
rf.fp = fp;
- rf.strings = PyList_New(0);
+ rf.readable = NULL;
+ rf.current_filename = NULL;
rf.depth = 0;
rf.ptr = rf.end = NULL;
result = r_object(&rf);
RFILE rf;
PyObject *result;
rf.fp = NULL;
+ rf.readable = NULL;
+ rf.current_filename = NULL;
rf.ptr = str;
rf.end = str + len;
- rf.strings = PyList_New(0);
rf.depth = 0;
result = r_object(&rf);
- Py_DECREF(rf.strings);
return result;
}
s = p.buf;
n = p.len;
rf.fp = NULL;
+ rf.readable = NULL;
+ rf.current_filename = NULL;
rf.ptr = s;
rf.end = s + n;
- rf.strings = PyList_New(0);
rf.depth = 0;
result = read_object(&rf);
- Py_DECREF(rf.strings);
PyBuffer_Release(&p);
return result;
}