summaryrefslogtreecommitdiffstats
path: root/Objects/dictobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/dictobject.c')
-rw-r--r--Objects/dictobject.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index ea32e23..beab457 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -738,11 +738,25 @@ dict_copy(mp, args)
register dictobject *mp;
PyObject *args;
{
+ if (!PyArg_Parse(args, ""))
+ return NULL;
+ return PyDict_Copy((PyObject*)mp);
+}
+
+PyObject *
+PyDict_Copy(o)
+ PyObject *o;
+{
+ register dictobject *mp;
register int i;
dictobject *copy;
dictentry *entry;
- if (!PyArg_Parse(args, ""))
+
+ if (o == NULL || !PyDict_Check(o)) {
+ PyErr_BadInternalCall();
return NULL;
+ }
+ mp = (dictobject *)o;
copy = (dictobject *)PyDict_New();
if (copy == NULL)
return NULL;