summaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Objects/namespaceobject.c
diff options
context:
space:
mode:
authorshadchin <[email protected]>2026-05-07 07:27:37 +0300
committershadchin <[email protected]>2026-05-07 07:57:26 +0300
commitcdd663c58847eced4c810b05edda251c70a10438 (patch)
tree268b4bf9860a9c77564d93a803d7ecfedd3586cd /contrib/tools/python3/Objects/namespaceobject.c
parentb6f47db70a8a8e904e3f38bed557097ff00f0b3b (diff)
Update Python 3 to 3.13.13
commit_hash:526db1f6570443324e2690db042314848cd47d2e
Diffstat (limited to 'contrib/tools/python3/Objects/namespaceobject.c')
-rw-r--r--contrib/tools/python3/Objects/namespaceobject.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/contrib/tools/python3/Objects/namespaceobject.c b/contrib/tools/python3/Objects/namespaceobject.c
index 7eeac11b553..4b1d625fc78 100644
--- a/contrib/tools/python3/Objects/namespaceobject.c
+++ b/contrib/tools/python3/Objects/namespaceobject.c
@@ -12,6 +12,9 @@ typedef struct {
PyObject *ns_dict;
} _PyNamespaceObject;
+#define _PyNamespace_CAST(op) _Py_CAST(_PyNamespaceObject*, (op))
+#define _PyNamespace_Check(op) PyObject_TypeCheck((op), &_PyNamespace_Type)
+
static PyMemberDef namespace_members[] = {
{"__dict__", _Py_T_OBJECT, offsetof(_PyNamespaceObject, ns_dict), Py_READONLY},
@@ -223,6 +226,14 @@ namespace_replace(PyObject *self, PyObject *args, PyObject *kwargs)
if (!result) {
return NULL;
}
+ if (!_PyNamespace_Check(result)) {
+ PyErr_Format(PyExc_TypeError,
+ "expect %N type, but %T() returned '%T' object",
+ &_PyNamespace_Type, self, result);
+ Py_DECREF(result);
+ return NULL;
+ }
+
if (PyDict_Update(((_PyNamespaceObject*)result)->ns_dict,
((_PyNamespaceObject*)self)->ns_dict) < 0)
{