Staging
v0.5.1
https://github.com/python/cpython
Revision 91234a16367b56ca03ee289f7c03a34d4cfec4c8 authored by Inada Naoki on 03 June 2019, 12:30:58 UTC, committed by GitHub on 03 June 2019, 12:30:58 UTC
This patch implements per opcode cache mechanism, and use it in
only LOAD_GLOBAL opcode.

Based on Yury's opcache3.patch in bpo-26219.
1 parent 29ec422
Raw File
Tip revision: 91234a16367b56ca03ee289f7c03a34d4cfec4c8 authored by Inada Naoki on 03 June 2019, 12:30:58 UTC
bpo-26219: per opcode cache for LOAD_GLOBAL (GH-12884)
Tip revision: 91234a1
ucnhash.h
/* Unicode name database interface */
#ifndef Py_LIMITED_API
#ifndef Py_UCNHASH_H
#define Py_UCNHASH_H
#ifdef __cplusplus
extern "C" {
#endif

/* revised ucnhash CAPI interface (exported through a "wrapper") */

#define PyUnicodeData_CAPSULE_NAME "unicodedata.ucnhash_CAPI"

typedef struct {

    /* Size of this struct */
    int size;

    /* Get name for a given character code.  Returns non-zero if
       success, zero if not.  Does not set Python exceptions.
       If self is NULL, data come from the default version of the database.
       If it is not NULL, it should be a unicodedata.ucd_X_Y_Z object */
    int (*getname)(PyObject *self, Py_UCS4 code, char* buffer, int buflen,
                   int with_alias_and_seq);

    /* Get character code for a given name.  Same error handling
       as for getname. */
    int (*getcode)(PyObject *self, const char* name, int namelen, Py_UCS4* code,
                   int with_named_seq);

} _PyUnicode_Name_CAPI;

#ifdef __cplusplus
}
#endif
#endif /* !Py_UCNHASH_H */
#endif /* !Py_LIMITED_API */
back to top