Lines Matching refs:op

78          * test: PyUnicode_IS_COMPACT_ASCII(op)
90 * test: PyUnicode_IS_COMPACT(op) && !PyUnicode_IS_ASCII(op)
123 * test: !PyUnicode_IS_COMPACT(op) && kind != PyUnicode_WCHAR_KIND
234 PyObject *op,
238 #define _PyASCIIObject_CAST(op) \
239 (assert(PyUnicode_Check(op)), \
240 _Py_CAST(PyASCIIObject*, (op)))
241 #define _PyCompactUnicodeObject_CAST(op) \
242 (assert(PyUnicode_Check(op)), \
243 _Py_CAST(PyCompactUnicodeObject*, (op)))
244 #define _PyUnicodeObject_CAST(op) \
245 (assert(PyUnicode_Check(op)), \
246 _Py_CAST(PyUnicodeObject*, (op)))
259 static inline unsigned int PyUnicode_CHECK_INTERNED(PyObject *op) {
260 return _PyASCIIObject_CAST(op)->state.interned;
263 # define PyUnicode_CHECK_INTERNED(op) PyUnicode_CHECK_INTERNED(_PyObject_CAST(op))
267 PyUnicode_IS_COMPACT(op) || _PyUnicodeObject_CAST(op)->data.any */
268 static inline unsigned int PyUnicode_IS_READY(PyObject *op) {
269 return _PyASCIIObject_CAST(op)->state.ready;
272 # define PyUnicode_IS_READY(op) PyUnicode_IS_READY(_PyObject_CAST(op))
278 static inline unsigned int PyUnicode_IS_ASCII(PyObject *op) {
279 assert(PyUnicode_IS_READY(op));
280 return _PyASCIIObject_CAST(op)->state.ascii;
283 # define PyUnicode_IS_ASCII(op) PyUnicode_IS_ASCII(_PyObject_CAST(op))
288 static inline unsigned int PyUnicode_IS_COMPACT(PyObject *op) {
289 return _PyASCIIObject_CAST(op)->state.compact;
292 # define PyUnicode_IS_COMPACT(op) PyUnicode_IS_COMPACT(_PyObject_CAST(op))
297 static inline int PyUnicode_IS_COMPACT_ASCII(PyObject *op) {
298 return (_PyASCIIObject_CAST(op)->state.ascii && PyUnicode_IS_COMPACT(op));
301 # define PyUnicode_IS_COMPACT_ASCII(op) PyUnicode_IS_COMPACT_ASCII(_PyObject_CAST(op))
316 #define PyUnicode_KIND(op) \
317 (assert(PyUnicode_IS_READY(op)), \
318 _PyASCIIObject_CAST(op)->state.kind)
321 static inline void* _PyUnicode_COMPACT_DATA(PyObject *op) {
322 if (PyUnicode_IS_ASCII(op)) {
323 return _Py_STATIC_CAST(void*, (_PyASCIIObject_CAST(op) + 1));
325 return _Py_STATIC_CAST(void*, (_PyCompactUnicodeObject_CAST(op) + 1));
328 static inline void* _PyUnicode_NONCOMPACT_DATA(PyObject *op) {
330 assert(!PyUnicode_IS_COMPACT(op));
331 data = _PyUnicodeObject_CAST(op)->data.any;
336 static inline void* PyUnicode_DATA(PyObject *op) {
337 if (PyUnicode_IS_COMPACT(op)) {
338 return _PyUnicode_COMPACT_DATA(op);
340 return _PyUnicode_NONCOMPACT_DATA(op);
343 # define PyUnicode_DATA(op) PyUnicode_DATA(_PyObject_CAST(op))
351 #define PyUnicode_1BYTE_DATA(op) _Py_STATIC_CAST(Py_UCS1*, PyUnicode_DATA(op))
352 #define PyUnicode_2BYTE_DATA(op) _Py_STATIC_CAST(Py_UCS2*, PyUnicode_DATA(op))
353 #define PyUnicode_4BYTE_DATA(op) _Py_STATIC_CAST(Py_UCS4*, PyUnicode_DATA(op))
358 static inline Py_ssize_t PyUnicode_GET_LENGTH(PyObject *op) {
359 assert(PyUnicode_IS_READY(op));
360 return _PyASCIIObject_CAST(op)->length;
363 # define PyUnicode_GET_LENGTH(op) PyUnicode_GET_LENGTH(_PyObject_CAST(op))
439 string based on op. This is always an approximation but more efficient
441 static inline Py_UCS4 PyUnicode_MAX_CHAR_VALUE(PyObject *op)
445 assert(PyUnicode_IS_READY(op));
446 if (PyUnicode_IS_ASCII(op)) {
450 kind = PyUnicode_KIND(op);
461 # define PyUnicode_MAX_CHAR_VALUE(op) \
462 PyUnicode_MAX_CHAR_VALUE(_PyObject_CAST(op))
492 static inline int PyUnicode_READY(PyObject *op)
494 if (PyUnicode_IS_READY(op)) {
497 return _PyUnicode_Ready(op);
500 # define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op))
633 static inline Py_ssize_t PyUnicode_WSTR_LENGTH(PyObject *op)
635 if (PyUnicode_IS_COMPACT_ASCII(op)) {
636 return _PyASCIIObject_CAST(op)->length;
639 return _PyCompactUnicodeObject_CAST(op)->wstr_length;
643 # define PyUnicode_WSTR_LENGTH(op) PyUnicode_WSTR_LENGTH(_PyObject_CAST(op))
652 static inline Py_ssize_t PyUnicode_GET_SIZE(PyObject *op)
656 if (_PyASCIIObject_CAST(op)->wstr == _Py_NULL) {
657 (void)PyUnicode_AsUnicode(op);
658 assert(_PyASCIIObject_CAST(op)->wstr != _Py_NULL);
660 return PyUnicode_WSTR_LENGTH(op);
664 # define PyUnicode_GET_SIZE(op) PyUnicode_GET_SIZE(_PyObject_CAST(op))
668 static inline Py_ssize_t PyUnicode_GET_DATA_SIZE(PyObject *op)
672 return PyUnicode_GET_SIZE(op) * Py_UNICODE_SIZE;
676 # define PyUnicode_GET_DATA_SIZE(op) PyUnicode_GET_DATA_SIZE(_PyObject_CAST(op))
685 static inline Py_UNICODE* PyUnicode_AS_UNICODE(PyObject *op)
687 wchar_t *wstr = _PyASCIIObject_CAST(op)->wstr;
694 return PyUnicode_AsUnicode(op);
698 # define PyUnicode_AS_UNICODE(op) PyUnicode_AS_UNICODE(_PyObject_CAST(op))
702 static inline const char* PyUnicode_AS_DATA(PyObject *op)
706 Py_UNICODE *data = PyUnicode_AS_UNICODE(op);
712 # define PyUnicode_AS_DATA(op) PyUnicode_AS_DATA(_PyObject_CAST(op))