[Python-checkins] r52863 - in python/branches: release24-maint/Python/ceval.c release25-maint/Python/ceval.c

armin.rigo python-checkins at python.org
Wed Nov 29 23:07:44 CET 2006


Author: armin.rigo
Date: Wed Nov 29 23:07:38 2006
New Revision: 52863
Modified:
 python/branches/release24-maint/Python/ceval.c
 python/branches/release25-maint/Python/ceval.c
Log:
Backport of r52862.
Modified: python/branches/release24-maint/Python/ceval.c
==============================================================================
--- python/branches/release24-maint/Python/ceval.c	(original)
+++ python/branches/release24-maint/Python/ceval.c	Wed Nov 29 23:07:38 2006
@@ -4073,8 +4073,10 @@
 		value = PyObject_GetAttr(v, name);
 		if (value == NULL)
 			err = -1;
-		else
+		else if (PyDict_CheckExact(locals))
 			err = PyDict_SetItem(locals, name, value);
+		else
+			err = PyObject_SetItem(locals, name, value);
 		Py_DECREF(name);
 		Py_XDECREF(value);
 		if (err != 0)
Modified: python/branches/release25-maint/Python/ceval.c
==============================================================================
--- python/branches/release25-maint/Python/ceval.c	(original)
+++ python/branches/release25-maint/Python/ceval.c	Wed Nov 29 23:07:38 2006
@@ -4046,8 +4046,10 @@
 		value = PyObject_GetAttr(v, name);
 		if (value == NULL)
 			err = -1;
-		else
+		else if (PyDict_CheckExact(locals))
 			err = PyDict_SetItem(locals, name, value);
+		else
+			err = PyObject_SetItem(locals, name, value);
 		Py_DECREF(name);
 		Py_XDECREF(value);
 		if (err != 0)


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /