From 43fb09dc398abf621ce3ca71f00e3338da0ee0ae Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 16 Nov 2023 14:38:46 +0530 Subject: [PATCH] Speed up Screen.draw --- kitty/screen.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kitty/screen.c b/kitty/screen.c index 5e05d09a9..e45d9dbf8 100644 --- a/kitty/screen.c +++ b/kitty/screen.c @@ -3541,10 +3541,10 @@ static PyObject* draw(Screen *self, PyObject *src) { if (!PyUnicode_Check(src)) { PyErr_SetString(PyExc_TypeError, "A unicode string is required"); return NULL; } if (PyUnicode_READY(src) != 0) { return PyErr_NoMemory(); } - int kind = PyUnicode_KIND(src); - void *buf = PyUnicode_DATA(src); - Py_ssize_t sz = PyUnicode_GET_LENGTH(src); - for (Py_ssize_t i = 0; i < sz; i++) draw_codepoint(self, PyUnicode_READ(kind, buf, i), true); + Py_UCS4 *buf = PyUnicode_AsUCS4Copy(src); + if (!buf) return NULL; + draw_text(self, buf, PyUnicode_GetLength(src)); + PyMem_Free(buf); Py_RETURN_NONE; }