summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/marshal.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/Python/marshal.c b/Python/marshal.c
index 1b88ff9..0c611b6 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -860,7 +860,7 @@ r_object(RFILE *p)
retval = NULL;
break;
}
- v = (type == TYPE_SET) ? PySet_New(NULL) : PyFrozenSet_New(NULL);
+ v = PyTuple_New((int)n);
if (v == NULL) {
retval = NULL;
break;
@@ -875,14 +875,18 @@ r_object(RFILE *p)
v = NULL;
break;
}
- if (PySet_Add(v, v2) == -1) {
- Py_DECREF(v);
- Py_DECREF(v2);
- v = NULL;
- break;
- }
+ PyTuple_SET_ITEM(v, (int)i, v2);
}
- retval = (v == NULL) ? NULL : v;
+ if (v == NULL) {
+ retval = NULL;
+ break;
+ }
+ if (type == TYPE_SET)
+ v3 = PySet_New(v);
+ else
+ v3 = PyFrozenSet_New(v);
+ Py_DECREF(v);
+ retval = v3;
break;
case TYPE_CODE: