aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/src/Objects/fileobject.c
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.ru>2022-04-18 12:39:32 +0300
committershadchin <shadchin@yandex-team.ru>2022-04-18 12:39:32 +0300
commitd4be68e361f4258cf0848fc70018dfe37a2acc24 (patch)
tree153e294cd97ac8b5d7a989612704a0c1f58e8ad4 /contrib/tools/python3/src/Objects/fileobject.c
parent260c02f5ccf242d9d9b8a873afaf6588c00237d6 (diff)
downloadydb-d4be68e361f4258cf0848fc70018dfe37a2acc24.tar.gz
IGNIETFERRO-1816 Update Python 3 from 3.9.12 to 3.10.4
ref:9f96be6d02ee8044fdd6f124b799b270c20ce641
Diffstat (limited to 'contrib/tools/python3/src/Objects/fileobject.c')
-rw-r--r--contrib/tools/python3/src/Objects/fileobject.c42
1 files changed, 15 insertions, 27 deletions
diff --git a/contrib/tools/python3/src/Objects/fileobject.c b/contrib/tools/python3/src/Objects/fileobject.c
index 1c6ecaf82c..5a2816f552 100644
--- a/contrib/tools/python3/src/Objects/fileobject.c
+++ b/contrib/tools/python3/src/Objects/fileobject.c
@@ -223,6 +223,17 @@ PyObject_AsFileDescriptor(PyObject *o)
return fd;
}
+int
+_PyLong_FileDescriptor_Converter(PyObject *o, void *ptr)
+{
+ int fd = PyObject_AsFileDescriptor(o);
+ if (fd == -1) {
+ return 0;
+ }
+ *(int *)ptr = fd;
+ return 1;
+}
+
/*
** Py_UniversalNewlineFgets is an fgets variation that understands
** all of \r, \n and \r\n conventions.
@@ -314,29 +325,6 @@ typedef struct {
int fd;
} PyStdPrinter_Object;
-static PyObject *
-stdprinter_new(PyTypeObject *type, PyObject *args, PyObject *kews)
-{
- PyStdPrinter_Object *self;
-
- assert(type != NULL && type->tp_alloc != NULL);
-
- self = (PyStdPrinter_Object *) type->tp_alloc(type, 0);
- if (self != NULL) {
- self->fd = -1;
- }
-
- return (PyObject *) self;
-}
-
-static int
-stdprinter_init(PyObject *self, PyObject *args, PyObject *kwds)
-{
- PyErr_SetString(PyExc_TypeError,
- "cannot create 'stderrprinter' instances");
- return -1;
-}
-
PyObject *
PyFile_NewStdPrinter(int fd)
{
@@ -379,7 +367,7 @@ stdprinter_write(PyStdPrinter_Object *self, PyObject *args)
return NULL;
}
- /* Encode Unicode to UTF-8/surrogateescape */
+ /* Encode Unicode to UTF-8/backslashreplace */
str = PyUnicode_AsUTF8AndSize(unicode, &n);
if (str == NULL) {
PyErr_Clear();
@@ -496,7 +484,7 @@ PyTypeObject PyStdPrinter_Type = {
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION, /* tp_flags */
0, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
@@ -512,9 +500,9 @@ PyTypeObject PyStdPrinter_Type = {
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
- stdprinter_init, /* tp_init */
+ 0, /* tp_init */
PyType_GenericAlloc, /* tp_alloc */
- stdprinter_new, /* tp_new */
+ 0, /* tp_new */
PyObject_Del, /* tp_free */
};