]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Add (undocumented) _co_quickened attribute for code object. (GH-31552)
authorMark Shannon <mark@hotpy.org>
Thu, 24 Feb 2022 12:10:53 +0000 (12:10 +0000)
committerGitHub <noreply@github.com>
Thu, 24 Feb 2022 12:10:53 +0000 (12:10 +0000)
Objects/codeobject.c

index f8ef1e6b40cc19f20af5938de7d02e45b6a99df3..f166204de2d8f4b9b44039e78c405bca4ab3d538 100644 (file)
@@ -1537,6 +1537,16 @@ code_getfreevars(PyCodeObject *code, void *closure)
     return _PyCode_GetFreevars(code);
 }
 
+static PyObject *
+code_getquickened(PyCodeObject *code, void *closure)
+{
+    if (code->co_quickened == NULL) {
+        Py_RETURN_NONE;
+    }
+    return PyBytes_FromStringAndSize((char *)code->co_firstinstr,
+                                     PyBytes_Size(code->co_code));
+}
+
 static PyGetSetDef code_getsetlist[] = {
     {"co_lnotab",    (getter)code_getlnotab, NULL, NULL},
     // The following old names are kept for backward compatibility.
@@ -1544,6 +1554,7 @@ static PyGetSetDef code_getsetlist[] = {
     {"co_varnames",  (getter)code_getvarnames, NULL, NULL},
     {"co_cellvars",  (getter)code_getcellvars, NULL, NULL},
     {"co_freevars",  (getter)code_getfreevars, NULL, NULL},
+    {"_co_quickened",  (getter)code_getquickened, NULL, NULL},
     {0}
 };
 
@@ -1902,7 +1913,7 @@ _PyCode_ConstantKey(PyObject *op)
     return key;
 }
 
-void 
+void
 _PyStaticCode_Dealloc(PyCodeObject *co)
 {
     if (co->co_quickened) {
@@ -1921,7 +1932,7 @@ _PyStaticCode_Dealloc(PyCodeObject *co)
 }
 
 void
-_PyStaticCode_InternStrings(PyCodeObject *co) 
+_PyStaticCode_InternStrings(PyCodeObject *co)
 {
     int res = intern_strings(co->co_names);
     assert(res == 0);