Generated by Cython 0.29.32
Yellow lines hint at Python interaction.
Click on a line that starts with a "+
" to see the C code that Cython generated for it.
Raw output: unmarshaller.c
+001: import array
__pyx_t_1 = __Pyx_Import(__pyx_n_s_array, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_array, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_5) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+002: import io
__pyx_t_1 = __Pyx_Import(__pyx_n_s_io, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_io, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+003: import socket
__pyx_t_1 = __Pyx_Import(__pyx_n_s_socket, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_socket, __pyx_t_1) < 0) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+004: import sys
__pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+005: from struct import Struct
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_Struct); __Pyx_GIVEREF(__pyx_n_s_Struct); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Struct); __pyx_t_2 = __Pyx_Import(__pyx_n_s_struct, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Struct); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Struct, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+006: from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple
__pyx_t_2 = PyList_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_Any); __Pyx_GIVEREF(__pyx_n_s_Any); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Any); __Pyx_INCREF(__pyx_n_s_Callable); __Pyx_GIVEREF(__pyx_n_s_Callable); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_Callable); __Pyx_INCREF(__pyx_n_s_Dict); __Pyx_GIVEREF(__pyx_n_s_Dict); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_Dict); __Pyx_INCREF(__pyx_n_s_Iterable); __Pyx_GIVEREF(__pyx_n_s_Iterable); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_Iterable); __Pyx_INCREF(__pyx_n_s_List); __Pyx_GIVEREF(__pyx_n_s_List); PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_List); __Pyx_INCREF(__pyx_n_s_Optional); __Pyx_GIVEREF(__pyx_n_s_Optional); PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_Optional); __Pyx_INCREF(__pyx_n_s_Tuple); __Pyx_GIVEREF(__pyx_n_s_Tuple); PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_Tuple); __pyx_t_1 = __Pyx_Import(__pyx_n_s_typing, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Any, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Callable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Callable, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Dict, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Iterable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Iterable, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_List, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Optional); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Optional, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Tuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Tuple, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
007:
+008: from ..constants import MESSAGE_FLAG_MAP, MESSAGE_TYPE_MAP
__pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_MESSAGE_FLAG_MAP); __Pyx_GIVEREF(__pyx_n_s_MESSAGE_FLAG_MAP); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_MESSAGE_FLAG_MAP); __Pyx_INCREF(__pyx_n_s_MESSAGE_TYPE_MAP); __Pyx_GIVEREF(__pyx_n_s_MESSAGE_TYPE_MAP); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_MESSAGE_TYPE_MAP); __pyx_t_2 = __Pyx_Import(__pyx_n_s_constants, __pyx_t_1, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MESSAGE_FLAG_MAP); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_MESSAGE_FLAG_MAP); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_MESSAGE_FLAG_MAP, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MESSAGE_TYPE_MAP); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_MESSAGE_TYPE_MAP); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_MESSAGE_TYPE_MAP, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+009: from ..errors import InvalidMessageError
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_InvalidMessageError); __Pyx_GIVEREF(__pyx_n_s_InvalidMessageError); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_InvalidMessageError); __pyx_t_1 = __Pyx_Import(__pyx_n_s_errors, __pyx_t_2, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_InvalidMessageError); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_InvalidMessageError, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+010: from ..message import Message
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_Message); __Pyx_GIVEREF(__pyx_n_s_Message); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Message); __pyx_t_2 = __Pyx_Import(__pyx_n_s_message, __pyx_t_1, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Message); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Message); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_Message, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+011: from ..signature import SignatureType, Variant, get_signature_tree
__pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_SignatureType); __Pyx_GIVEREF(__pyx_n_s_SignatureType); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_SignatureType); __Pyx_INCREF(__pyx_n_s_Variant); __Pyx_GIVEREF(__pyx_n_s_Variant); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_Variant); __Pyx_INCREF(__pyx_n_s_get_signature_tree); __Pyx_GIVEREF(__pyx_n_s_get_signature_tree); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_get_signature_tree); __pyx_t_1 = __Pyx_Import(__pyx_n_s_signature, __pyx_t_2, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_SignatureType, __pyx_t_2) < 0) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Variant); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_get_signature_tree); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+012: from .constants import BIG_ENDIAN, LITTLE_ENDIAN, PROTOCOL_VERSION
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_BIG_ENDIAN); __Pyx_GIVEREF(__pyx_n_s_BIG_ENDIAN); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_BIG_ENDIAN); __Pyx_INCREF(__pyx_n_s_LITTLE_ENDIAN); __Pyx_GIVEREF(__pyx_n_s_LITTLE_ENDIAN); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_LITTLE_ENDIAN); __Pyx_INCREF(__pyx_n_s_PROTOCOL_VERSION); __Pyx_GIVEREF(__pyx_n_s_PROTOCOL_VERSION); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_PROTOCOL_VERSION); __pyx_t_2 = __Pyx_Import(__pyx_n_s_constants, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_BIG_ENDIAN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_unsigned_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __pyx_v_9dbus_fast_8_private_12unmarshaller_BIG_ENDIAN = __pyx_t_3; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_LITTLE_ENDIAN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_unsigned_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __pyx_v_9dbus_fast_8_private_12unmarshaller_LITTLE_ENDIAN = __pyx_t_3; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_PROTOCOL_VERSION); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_unsigned_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 12, __pyx_L1_error) __pyx_v_9dbus_fast_8_private_12unmarshaller_PROTOCOL_VERSION = __pyx_t_3; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
013:
+014: MAX_UNIX_FDS = 16
if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAX_UNIX_FDS, __pyx_int_16) < 0) __PYX_ERR(0, 14, __pyx_L1_error)
015:
+016: UNPACK_SYMBOL = {LITTLE_ENDIAN: "<", BIG_ENDIAN: ">"}
__pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_LITTLE_ENDIAN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_kp_u__9) < 0) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_BIG_ENDIAN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_kp_u__10) < 0) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_UNPACK_SYMBOL, __pyx_t_2) < 0) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
017:
+018: UINT32_CAST = "I"
__Pyx_INCREF(__pyx_n_u_I); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST, __pyx_n_u_I); __Pyx_GIVEREF(__pyx_n_u_I);
+019: UINT32_SIZE = 4
__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE = 4;
+020: UINT32_DBUS_TYPE = "u"
if (PyDict_SetItem(__pyx_d, __pyx_n_s_UINT32_DBUS_TYPE, __pyx_n_u_u) < 0) __PYX_ERR(0, 20, __pyx_L1_error)
021:
+022: INT16_CAST = "h"
__Pyx_INCREF(__pyx_n_u_h); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_CAST); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_CAST, __pyx_n_u_h); __Pyx_GIVEREF(__pyx_n_u_h);
+023: INT16_SIZE = 2
__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_SIZE = 2;
+024: INT16_DBUS_TYPE = "n"
if (PyDict_SetItem(__pyx_d, __pyx_n_s_INT16_DBUS_TYPE, __pyx_n_u_n) < 0) __PYX_ERR(0, 24, __pyx_L1_error)
025:
+026: UINT16_CAST = "H"
__Pyx_INCREF(__pyx_n_u_H); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_CAST); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_CAST, __pyx_n_u_H); __Pyx_GIVEREF(__pyx_n_u_H);
+027: UINT16_SIZE = 2
__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_SIZE = 2;
+028: UINT16_DBUS_TYPE = "q"
if (PyDict_SetItem(__pyx_d, __pyx_n_s_UINT16_DBUS_TYPE, __pyx_n_u_q) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
029:
+030: SYS_IS_LITTLE_ENDIAN = sys.byteorder == "little"
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_byteorder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_n_u_little, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_9dbus_fast_8_private_12unmarshaller_SYS_IS_LITTLE_ENDIAN = __pyx_t_4;
+031: SYS_IS_BIG_ENDIAN = sys.byteorder == "big"
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_byteorder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_n_u_big, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_9dbus_fast_8_private_12unmarshaller_SYS_IS_BIG_ENDIAN = __pyx_t_4;
032:
033: DBUS_TO_CTYPE = {
+034: "y": ("B", 1), # byte
__pyx_t_2 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_y, __pyx_tuple__11) < 0) __PYX_ERR(0, 34, __pyx_L1_error) /* … */ __pyx_tuple__11 = PyTuple_Pack(2, __pyx_n_u_B, __pyx_int_1); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11);
+035: INT16_DBUS_TYPE: (INT16_CAST, INT16_SIZE), # int16
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_INT16_DBUS_TYPE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_SIZE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_CAST); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_CAST); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_CAST); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_t_1, __pyx_t_6) < 0) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+036: UINT16_DBUS_TYPE: (UINT16_CAST, UINT16_SIZE), # uint16
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_UINT16_DBUS_TYPE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_SIZE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_CAST); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_CAST); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_CAST); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_t_6, __pyx_t_5) < 0) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+037: "i": ("i", 4), # int32
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_i, __pyx_tuple__12) < 0) __PYX_ERR(0, 34, __pyx_L1_error) /* … */ __pyx_tuple__12 = PyTuple_Pack(2, __pyx_n_u_i, __pyx_int_4); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12);
+038: UINT32_DBUS_TYPE: (UINT32_CAST, UINT32_SIZE), # uint32
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_UINT32_DBUS_TYPE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_t_5, __pyx_t_1) < 0) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+039: "x": ("q", 8), # int64
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_x, __pyx_tuple__13) < 0) __PYX_ERR(0, 34, __pyx_L1_error) /* … */ __pyx_tuple__13 = PyTuple_Pack(2, __pyx_n_u_q, __pyx_int_8); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13);
+040: "t": ("Q", 8), # uint64
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_t, __pyx_tuple__14) < 0) __PYX_ERR(0, 34, __pyx_L1_error) /* … */ __pyx_tuple__14 = PyTuple_Pack(2, __pyx_n_u_Q, __pyx_int_8); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14);
+041: "d": ("d", 8), # double
if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_d, __pyx_tuple__15) < 0) __PYX_ERR(0, 34, __pyx_L1_error) /* … */ __pyx_tuple__15 = PyTuple_Pack(2, __pyx_n_u_d, __pyx_int_8); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15);
+042: "h": (UINT32_CAST, UINT32_SIZE), # uint32
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_h, __pyx_t_5) < 0) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_DBUS_TO_CTYPE, __pyx_t_2) < 0) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
043: }
044:
+045: UNPACK_HEADER_LITTLE_ENDIAN = Struct("<III").unpack_from
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Struct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_unpack_from); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UNPACK_HEADER_LITTLE_ENDIAN); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_UNPACK_HEADER_LITTLE_ENDIAN, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_u_III); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16);
+046: UNPACK_HEADER_BIG_ENDIAN = Struct(">III").unpack_from
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Struct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_unpack_from); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UNPACK_HEADER_BIG_ENDIAN); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_UNPACK_HEADER_BIG_ENDIAN, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_u_III_2); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17);
047:
+048: UINT32_UNPACK_LITTLE_ENDIAN = Struct(f"<{UINT32_CAST}").unpack_from
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Struct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u__9, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_unpack_from); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_LITTLE_ENDIAN); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_LITTLE_ENDIAN, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+049: UINT32_UNPACK_BIG_ENDIAN = Struct(f">{UINT32_CAST}").unpack_from
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Struct); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_CAST); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u__10, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_unpack_from); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_BIG_ENDIAN); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_BIG_ENDIAN, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
050:
+051: INT16_UNPACK_LITTLE_ENDIAN = Struct(f"<{INT16_CAST}").unpack_from
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Struct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_CAST); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u__9, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_unpack_from); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_LITTLE_ENDIAN); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_LITTLE_ENDIAN, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+052: INT16_UNPACK_BIG_ENDIAN = Struct(f">{INT16_CAST}").unpack_from
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Struct); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_CAST); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u__10, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_unpack_from); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_BIG_ENDIAN); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_BIG_ENDIAN, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
053:
+054: UINT16_UNPACK_LITTLE_ENDIAN = Struct(f"<{UINT16_CAST}").unpack_from
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Struct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_CAST); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyUnicode_Concat(__pyx_kp_u__9, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_unpack_from); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_LITTLE_ENDIAN); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_LITTLE_ENDIAN, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+055: UINT16_UNPACK_BIG_ENDIAN = Struct(f">{UINT16_CAST}").unpack_from
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Struct); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_CAST); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_kp_u__10, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_unpack_from); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_BIG_ENDIAN); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_BIG_ENDIAN, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
056:
+057: HEADER_SIGNATURE_SIZE = 16
__pyx_v_9dbus_fast_8_private_12unmarshaller_HEADER_SIGNATURE_SIZE = 16;
+058: HEADER_ARRAY_OF_STRUCT_SIGNATURE_POSITION = 12
__pyx_v_9dbus_fast_8_private_12unmarshaller_HEADER_ARRAY_OF_STRUCT_SIGNATURE_POSITION = 12;
059:
060:
+061: SIGNATURE_TREE_EMPTY = get_signature_tree("")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_EMPTY); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_EMPTY, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_u__3); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18);
+062: SIGNATURE_TREE_B = get_signature_tree("b")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_B); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_B, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__19 = PyTuple_Pack(1, __pyx_n_u_b); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19);
+063: SIGNATURE_TREE_N = get_signature_tree("n")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_N); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_N, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__20 = PyTuple_Pack(1, __pyx_n_u_n); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20);
+064: SIGNATURE_TREE_S = get_signature_tree("s")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_S); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_S, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__21 = PyTuple_Pack(1, __pyx_n_u_s); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21);
+065: SIGNATURE_TREE_O = get_signature_tree("o")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_O); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_O, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__22 = PyTuple_Pack(1, __pyx_n_u_o); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22);
066:
+067: SIGNATURE_TREE_AY = get_signature_tree("ay")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_n_u_ay); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23);
+068: SIGNATURE_TREE_AS = get_signature_tree("as")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__24 = PyTuple_Pack(1, __pyx_n_u_as); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24);
+069: SIGNATURE_TREE_AS_TYPES_0 = SIGNATURE_TREE_AS.types[0]
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS, __pyx_n_s_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS_TYPES_0); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS_TYPES_0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
+070: SIGNATURE_TREE_A_SV = get_signature_tree("a{sv}")
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_u_a_sv); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25);
+071: SIGNATURE_TREE_A_SV_TYPES_0 = SIGNATURE_TREE_A_SV.types[0]
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV, __pyx_n_s_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV_TYPES_0); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV_TYPES_0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
072:
+073: SIGNATURE_TREE_OAS = get_signature_tree("oas")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OAS); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OAS, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_n_u_oas); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26);
+074: SIGNATURE_TREE_OAS_TYPES_1 = SIGNATURE_TREE_OAS.types[1]
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OAS, __pyx_n_s_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OAS_TYPES_1); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OAS_TYPES_1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
075:
+076: SIGNATURE_TREE_AY_TYPES_0 = SIGNATURE_TREE_AY.types[0]
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY, __pyx_n_s_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY_TYPES_0); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY_TYPES_0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+077: SIGNATURE_TREE_A_QV = get_signature_tree("a{qv}")
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_u_a_qv); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27);
+078: SIGNATURE_TREE_A_QV_TYPES_0 = SIGNATURE_TREE_A_QV.types[0]
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV, __pyx_n_s_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV_TYPES_0); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV_TYPES_0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
079:
+080: SIGNATURE_TREE_SA_SV_AS = get_signature_tree("sa{sv}as")
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_u_sa_sv_as); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28);
+081: SIGNATURE_TREE_SA_SV_AS_TYPES_1 = SIGNATURE_TREE_SA_SV_AS.types[1]
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS, __pyx_n_s_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS_TYPES_1); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS_TYPES_1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+082: SIGNATURE_TREE_SA_SV_AS_TYPES_2 = SIGNATURE_TREE_SA_SV_AS.types[2]
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS, __pyx_n_s_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS_TYPES_2); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS_TYPES_2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0;
083:
+084: SIGNATURE_TREE_OA_SA_SV = get_signature_tree("oa{sa{sv}}")
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OA_SA_SV); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OA_SA_SV, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_u_oa_sa_sv); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29);
+085: SIGNATURE_TREE_OA_SA_SV_TYPES_1 = SIGNATURE_TREE_OA_SA_SV.types[1]
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OA_SA_SV, __pyx_n_s_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OA_SA_SV_TYPES_1); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OA_SA_SV_TYPES_1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
086:
+087: TOKEN_O_AS_INT = ord("o")
__pyx_v_9dbus_fast_8_private_12unmarshaller_TOKEN_O_AS_INT = 0x6F;
+088: TOKEN_S_AS_INT = ord("s")
__pyx_v_9dbus_fast_8_private_12unmarshaller_TOKEN_S_AS_INT = 0x73;
+089: TOKEN_G_AS_INT = ord("g")
__pyx_v_9dbus_fast_8_private_12unmarshaller_TOKEN_G_AS_INT = 0x67;
090:
091: HEADER_MESSAGE_ARG_NAME = {
+092: 1: "path",
__pyx_t_2 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_int_1, __pyx_n_u_path) < 0) __PYX_ERR(0, 92, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_int_2, __pyx_n_u_interface) < 0) __PYX_ERR(0, 92, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_int_3, __pyx_n_u_member) < 0) __PYX_ERR(0, 92, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_int_4, __pyx_n_u_error_name) < 0) __PYX_ERR(0, 92, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_int_5, __pyx_n_u_reply_serial) < 0) __PYX_ERR(0, 92, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_int_6, __pyx_n_u_destination) < 0) __PYX_ERR(0, 92, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_int_7, __pyx_n_u_sender) < 0) __PYX_ERR(0, 92, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_int_8, __pyx_n_u_signature) < 0) __PYX_ERR(0, 92, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_int_9, __pyx_n_u_unix_fds) < 0) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_XGOTREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_HEADER_MESSAGE_ARG_NAME); __Pyx_DECREF_SET(__pyx_v_9dbus_fast_8_private_12unmarshaller_HEADER_MESSAGE_ARG_NAME, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
093: 2: "interface",
094: 3: "member",
095: 4: "error_name",
096: 5: "reply_serial",
097: 6: "destination",
098: 7: "sender",
099: 8: "signature",
100: 9: "unix_fds",
101: }
102:
103:
+104: READER_TYPE = Callable[["Unmarshaller", SignatureType], Any]
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Callable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_Unmarshaller); __Pyx_GIVEREF(__pyx_n_u_Unmarshaller); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_Unmarshaller); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Any); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_READER_TYPE, __pyx_t_5) < 0) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
105:
106:
+107: def unpack_parser_factory(unpack_from: Callable, size: int) -> READER_TYPE:
/* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_1unpack_parser_factory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_9dbus_fast_8_private_12unmarshaller_unpack_parser_factory[] = "Build a parser that unpacks the bytes using the given unpack_from function."; static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_1unpack_parser_factory = {"unpack_parser_factory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_9dbus_fast_8_private_12unmarshaller_1unpack_parser_factory, METH_VARARGS|METH_KEYWORDS, __pyx_doc_9dbus_fast_8_private_12unmarshaller_unpack_parser_factory}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_1unpack_parser_factory(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_unpack_from = 0; PyObject *__pyx_v_size = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("unpack_parser_factory (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unpack_from,&__pyx_n_s_size,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unpack_from)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("unpack_parser_factory", 1, 2, 2, 1); __PYX_ERR(0, 107, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "unpack_parser_factory") < 0)) __PYX_ERR(0, 107, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_unpack_from = values[0]; __pyx_v_size = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("unpack_parser_factory", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 107, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dbus_fast._private.unmarshaller.unpack_parser_factory", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_unpack_parser_factory(__pyx_self, __pyx_v_unpack_from, __pyx_v_size); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_unpack_parser_factory(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_unpack_from, PyObject *__pyx_v_size) { struct __pyx_obj_9dbus_fast_8_private_12unmarshaller___pyx_scope_struct__unpack_parser_factory *__pyx_cur_scope; PyObject *__pyx_v__unpack_from_parser = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("unpack_parser_factory", 0); __pyx_cur_scope = (struct __pyx_obj_9dbus_fast_8_private_12unmarshaller___pyx_scope_struct__unpack_parser_factory *)__pyx_tp_new_9dbus_fast_8_private_12unmarshaller___pyx_scope_struct__unpack_parser_factory(__pyx_ptype_9dbus_fast_8_private_12unmarshaller___pyx_scope_struct__unpack_parser_factory, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __pyx_cur_scope = ((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller___pyx_scope_struct__unpack_parser_factory *)Py_None); __Pyx_INCREF(Py_None); __PYX_ERR(0, 107, __pyx_L1_error) } else { __Pyx_GOTREF(__pyx_cur_scope); } __pyx_cur_scope->__pyx_v_unpack_from = __pyx_v_unpack_from; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_unpack_from); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_unpack_from); __pyx_cur_scope->__pyx_v_size = __pyx_v_size; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_size); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_size); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.unpack_parser_factory", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v__unpack_from_parser); __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__30 = PyTuple_Pack(4, __pyx_n_s_unpack_from, __pyx_n_s_size, __pyx_n_s_unpack_from_parser, __pyx_n_s_unpack_from_parser); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); /* … */ __pyx_t_5 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_Callable); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_unpack_from, __pyx_t_6) < 0) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_size, __pyx_n_u_int) < 0) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_READER_TYPE); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_return, __pyx_t_6) < 0) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_1unpack_parser_factory, 0, __pyx_n_s_unpack_parser_factory, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__31)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_unpack_parser_factory, __pyx_t_6) < 0) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_unpack_parser_factory, 107, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(0, 107, __pyx_L1_error) /* … */ struct __pyx_obj_9dbus_fast_8_private_12unmarshaller___pyx_scope_struct__unpack_parser_factory { PyObject_HEAD PyObject *__pyx_v_size; PyObject *__pyx_v_unpack_from; };
108: """Build a parser that unpacks the bytes using the given unpack_from function."""
109:
+110: def _unpack_from_parser(self: "Unmarshaller", signature: SignatureType) -> Any:
/* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_21unpack_parser_factory_1_unpack_from_parser(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_21unpack_parser_factory_1_unpack_from_parser = {"_unpack_from_parser", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_9dbus_fast_8_private_12unmarshaller_21unpack_parser_factory_1_unpack_from_parser, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_21unpack_parser_factory_1_unpack_from_parser(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self = 0; CYTHON_UNUSED PyObject *__pyx_v_signature = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_unpack_from_parser (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_signature,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signature)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_unpack_from_parser", 1, 2, 2, 1); __PYX_ERR(0, 110, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_unpack_from_parser") < 0)) __PYX_ERR(0, 110, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_self = ((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)values[0]); __pyx_v_signature = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("_unpack_from_parser", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 110, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dbus_fast._private.unmarshaller.unpack_parser_factory._unpack_from_parser", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_self), __pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, 1, "self", 0))) __PYX_ERR(0, 110, __pyx_L1_error) __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_21unpack_parser_factory__unpack_from_parser(__pyx_self, __pyx_v_self, __pyx_v_signature); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_21unpack_parser_factory__unpack_from_parser(PyObject *__pyx_self, struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_signature) { struct __pyx_obj_9dbus_fast_8_private_12unmarshaller___pyx_scope_struct__unpack_parser_factory *__pyx_cur_scope; struct __pyx_obj_9dbus_fast_8_private_12unmarshaller___pyx_scope_struct__unpack_parser_factory *__pyx_outer_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_unpack_from_parser", 0); __pyx_outer_scope = (struct __pyx_obj_9dbus_fast_8_private_12unmarshaller___pyx_scope_struct__unpack_parser_factory *) __Pyx_CyFunction_GetClosure(__pyx_self); __pyx_cur_scope = __pyx_outer_scope; /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.unpack_parser_factory._unpack_from_parser", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple_ = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_signature); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); /* … */ __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_self, __pyx_n_u_Unmarshaller) < 0) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_signature, __pyx_t_2) < 0) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_return, __pyx_t_2) < 0) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_21unpack_parser_factory_1_unpack_from_parser, 0, __pyx_n_s_unpack_parser_factory_locals__un, ((PyObject*)__pyx_cur_scope), __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v__unpack_from_parser = __pyx_t_2; __pyx_t_2 = 0; __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple_, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_unpack_from_parser, 110, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 110, __pyx_L1_error)
+111: self._pos += size + (-self._pos & (size - 1)) # align
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->_pos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(!__pyx_cur_scope->__pyx_v_size)) { __Pyx_RaiseClosureNameError("size"); __PYX_ERR(0, 111, __pyx_L1_error) } __pyx_t_2 = __Pyx_PyInt_From_unsigned_int((-__pyx_v_self->_pos)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(!__pyx_cur_scope->__pyx_v_size)) { __Pyx_RaiseClosureNameError("size"); __PYX_ERR(0, 111, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_cur_scope->__pyx_v_size, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_And(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_cur_scope->__pyx_v_size, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyInt_As_unsigned_int(__pyx_t_4); if (unlikely((__pyx_t_5 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_self->_pos = __pyx_t_5;
+112: return unpack_from(self._buf, self._pos - size)[0]
__Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_cur_scope->__pyx_v_unpack_from)) { __Pyx_RaiseClosureNameError("unpack_from"); __PYX_ERR(0, 112, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->_pos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(!__pyx_cur_scope->__pyx_v_size)) { __Pyx_RaiseClosureNameError("size"); __PYX_ERR(0, 112, __pyx_L1_error) } __pyx_t_1 = PyNumber_Subtract(__pyx_t_3, __pyx_cur_scope->__pyx_v_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_unpack_from); __pyx_t_3 = __pyx_cur_scope->__pyx_v_unpack_from; __pyx_t_2 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_self->_buf, __pyx_t_1}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_self->_buf, __pyx_t_1}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(__pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_v_self->_buf); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
113:
+114: return _unpack_from_parser
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v__unpack_from_parser); __pyx_r = __pyx_v__unpack_from_parser; goto __pyx_L0;
115:
116:
+117: def build_simple_parsers(
/* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_3build_simple_parsers(PyObject *__pyx_self, PyObject *__pyx_v_endian); /*proto*/ static char __pyx_doc_9dbus_fast_8_private_12unmarshaller_2build_simple_parsers[] = "Build a dict of parsers for simple types."; static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_3build_simple_parsers = {"build_simple_parsers", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_3build_simple_parsers, METH_O, __pyx_doc_9dbus_fast_8_private_12unmarshaller_2build_simple_parsers}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_3build_simple_parsers(PyObject *__pyx_self, PyObject *__pyx_v_endian) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("build_simple_parsers (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_2build_simple_parsers(__pyx_self, ((PyObject *)__pyx_v_endian)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_2build_simple_parsers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_endian) { PyObject *__pyx_v_parsers = NULL; PyObject *__pyx_v_dbus_type = NULL; PyObject *__pyx_v_ctype_size = NULL; PyObject *__pyx_v_ctype = NULL; PyObject *__pyx_v_size = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("build_simple_parsers", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.build_simple_parsers", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_parsers); __Pyx_XDECREF(__pyx_v_dbus_type); __Pyx_XDECREF(__pyx_v_ctype_size); __Pyx_XDECREF(__pyx_v_ctype); __Pyx_XDECREF(__pyx_v_size); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__32 = PyTuple_Pack(6, __pyx_n_s_endian, __pyx_n_s_parsers, __pyx_n_s_dbus_type, __pyx_n_s_ctype_size, __pyx_n_s_ctype, __pyx_n_s_size); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32); /* … */ __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_endian, __pyx_n_u_int) < 0) __PYX_ERR(0, 117, __pyx_L1_error) /* … */ __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_3build_simple_parsers, 0, __pyx_n_s_build_simple_parsers, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_build_simple_parsers, __pyx_t_1) < 0) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_build_simple_parsers, 117, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(0, 117, __pyx_L1_error)
118: endian: int,
+119: ) -> Dict[str, Callable[["Unmarshaller", SignatureType], Any]]:
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Callable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_n_u_Unmarshaller); __Pyx_GIVEREF(__pyx_n_u_Unmarshaller); PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_Unmarshaller); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Any); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1); __pyx_t_7 = 0; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(((PyObject *)(&PyUnicode_Type))); __Pyx_GIVEREF(((PyObject *)(&PyUnicode_Type))); PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)(&PyUnicode_Type))); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_return, __pyx_t_1) < 0) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
120: """Build a dict of parsers for simple types."""
+121: parsers: Dict[str, READER_TYPE] = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_parsers = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+122: for dbus_type, ctype_size in DBUS_TO_CTYPE.items():
__pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_DBUS_TO_CTYPE); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__pyx_t_5 == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "items"); __PYX_ERR(0, 122, __pyx_L1_error) } __pyx_t_6 = __Pyx_dict_iterator(__pyx_t_5, 0, __pyx_n_s_items, (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = __pyx_t_6; __pyx_t_6 = 0; while (1) { __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_6, &__pyx_t_5, NULL, __pyx_t_4); if (unlikely(__pyx_t_7 == 0)) break; if (unlikely(__pyx_t_7 == -1)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_dbus_type, __pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_ctype_size, __pyx_t_5); __pyx_t_5 = 0;
+123: ctype, size = ctype_size
if ((likely(PyTuple_CheckExact(__pyx_v_ctype_size))) || (PyList_CheckExact(__pyx_v_ctype_size))) { PyObject* sequence = __pyx_v_ctype_size; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 123, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_5 = PyList_GET_ITEM(sequence, 0); __pyx_t_6 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); #else __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_ctype_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_5 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 123, __pyx_L1_error) __pyx_t_9 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 123, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_ctype, __pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF_SET(__pyx_v_size, __pyx_t_6); __pyx_t_6 = 0;
+124: size = ctype_size[1]
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_ctype_size, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_size, __pyx_t_6); __pyx_t_6 = 0;
+125: parsers[dbus_type] = unpack_parser_factory(
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_unpack_parser_factory); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* … */ if (unlikely(PyDict_SetItem(__pyx_v_parsers, __pyx_v_dbus_type, __pyx_t_6) < 0)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+126: Struct(f"{UNPACK_SYMBOL[endian]}{ctype}").unpack_from, size
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_Struct); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_UNPACK_SYMBOL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_endian); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_FormatSimple(__pyx_t_12, __pyx_empty_unicode); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_FormatSimple(__pyx_v_ctype, __pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = __Pyx_PyUnicode_Concat(__pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_13); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_unpack_from); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_10, __pyx_v_size}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_10, __pyx_v_size}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { __pyx_t_13 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_7, __pyx_t_10); __Pyx_INCREF(__pyx_v_size); __Pyx_GIVEREF(__pyx_v_size); PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_7, __pyx_v_size); __pyx_t_10 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
127: )
+128: return parsers
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_parsers); __pyx_r = __pyx_v_parsers; goto __pyx_L0;
129:
130:
131: class MarshallerStreamEndError(Exception):
132: """This exception is raised when the end of the stream is reached.
133:
134: This means more data is expected on the wire that has not yet been
135: received. The caller should call unmarshall later when more data is
136: available.
137: """
138:
139: pass
140:
141:
+142: try:
{ /*try:*/ { /* … */ } }
143: import cython
144: except ImportError:
145: from ._cython_compat import FAKE_CYTHON as cython
146:
147: #
148: # Alignment padding is handled with the following formula below
149: #
150: # For any align value, the correct padding formula is:
151: #
152: # (align - (pos % align)) % align
153: #
154: # However, if align is a power of 2 (always the case here), the slow MOD
155: # operator can be replaced by a bitwise AND:
156: #
157: # (align - (pos & (align - 1))) & (align - 1)
158: #
159: # Which can be simplified to:
160: #
161: # (-pos) & (align - 1)
162: #
163: #
+164: class Unmarshaller:
struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller { PyObject *(*reset)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, int __pyx_skip_dispatch); PyObject *(*_read_sock)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, unsigned long); PyObject *(*_read_to_pos)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, unsigned long); PyObject *(*read_boolean)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, PyObject *, int __pyx_skip_dispatch); PyObject *(*_read_boolean)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *); PyObject *(*read_uint32_unpack)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, PyObject *, int __pyx_skip_dispatch); unsigned int (*_read_uint32_unpack)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *); PyObject *(*read_int16_unpack)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, PyObject *, int __pyx_skip_dispatch); int (*_read_int16_unpack)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *); PyObject *(*read_uint16_unpack)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, PyObject *, int __pyx_skip_dispatch); unsigned int (*_read_uint16_unpack)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *); PyObject *(*read_string_unpack)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, PyObject *, int __pyx_skip_dispatch); PyObject *(*_read_string_unpack)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *); PyObject *(*_read_variant)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *); PyObject *(*read_array)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, PyObject *, int __pyx_skip_dispatch); PyObject *(*_read_array)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, PyObject *); PyObject *(*read_signature)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, PyObject *, int __pyx_skip_dispatch); PyObject *(*_read_signature)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *); PyObject *(*_read_header)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *); PyObject *(*_read_body)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *); PyObject *(*unmarshall)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, int __pyx_skip_dispatch); PyObject *(*header_fields)(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *, unsigned int); }; static struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_vtabptr_9dbus_fast_8_private_12unmarshaller_Unmarshaller;
165:
166: __slots__ = (
+167: "_unix_fds",
if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_slots, __pyx_tuple__38) < 0) __PYX_ERR(0, 166, __pyx_L1_error) PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); /* … */ __pyx_tuple__38 = PyTuple_Pack(17, __pyx_n_u_unix_fds_2, __pyx_n_u_buf, __pyx_n_u_pos, __pyx_n_u_stream_2, __pyx_n_u_sock_2, __pyx_n_u_message_2, __pyx_n_u_readers, __pyx_n_u_body_len, __pyx_n_u_serial_2, __pyx_n_u_header_len, __pyx_n_u_message_type_2, __pyx_n_u_flag, __pyx_n_u_msg_len, __pyx_n_u_uint32_unpack, __pyx_n_u_int16_unpack, __pyx_n_u_uint16_unpack, __pyx_n_u_is_native); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__38); __Pyx_GIVEREF(__pyx_tuple__38);
168: "_buf",
169: "_pos",
170: "_stream",
171: "_sock",
172: "_message",
173: "_readers",
174: "_body_len",
175: "_serial",
176: "_header_len",
177: "_message_type",
178: "_flag",
179: "_msg_len",
180: "_uint32_unpack",
181: "_int16_unpack",
182: "_uint16_unpack",
183: "_is_native",
184: )
185:
+186: def __init__(self, stream: io.BufferedRWPair, sock: Optional[socket.socket] = None):
/* Python wrapper */ static int __pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_stream = 0; PyObject *__pyx_v_sock = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,&__pyx_n_s_sock,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sock); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 186, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_stream = values[0]; __pyx_v_sock = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 186, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller___init__(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), __pyx_v_stream, __pyx_v_sock); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller___init__(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_stream, PyObject *__pyx_v_sock) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+187: self._unix_fds: List[int] = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_unix_fds); __Pyx_DECREF(__pyx_v_self->_unix_fds); __pyx_v_self->_unix_fds = __pyx_t_1; __pyx_t_1 = 0;
+188: self._buf = bytearray() # Actual buffer
__pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)(&PyByteArray_Type))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_buf); __Pyx_DECREF(__pyx_v_self->_buf); __pyx_v_self->_buf = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+189: self._stream = stream
__Pyx_INCREF(__pyx_v_stream); __Pyx_GIVEREF(__pyx_v_stream); __Pyx_GOTREF(__pyx_v_self->_stream); __Pyx_DECREF(__pyx_v_self->_stream); __pyx_v_self->_stream = __pyx_v_stream;
+190: self._sock = sock
__Pyx_INCREF(__pyx_v_sock); __Pyx_GIVEREF(__pyx_v_sock); __Pyx_GOTREF(__pyx_v_self->_sock); __Pyx_DECREF(__pyx_v_self->_sock); __pyx_v_self->_sock = __pyx_v_sock;
+191: self._message: Optional[Message] = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_message); __Pyx_DECREF(__pyx_v_self->_message); __pyx_v_self->_message = Py_None;
+192: self._readers: Dict[str, READER_TYPE] = {}
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_readers); __Pyx_DECREF(__pyx_v_self->_readers); __pyx_v_self->_readers = __pyx_t_1; __pyx_t_1 = 0;
+193: self._pos = 0
__pyx_v_self->_pos = 0;
+194: self._body_len = 0
__pyx_v_self->_body_len = 0;
+195: self._serial = 0
__pyx_v_self->_serial = 0;
+196: self._header_len = 0
__pyx_v_self->_header_len = 0;
+197: self._message_type = 0
__pyx_v_self->_message_type = 0;
+198: self._flag = 0
__pyx_v_self->_flag = 0;
+199: self._msg_len = 0
__pyx_v_self->_msg_len = 0;
+200: self._is_native = 0
__pyx_v_self->_is_native = 0;
+201: self._uint32_unpack: Callable | None = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_uint32_unpack); __Pyx_DECREF(__pyx_v_self->_uint32_unpack); __pyx_v_self->_uint32_unpack = Py_None;
+202: self._int16_unpack: Callable | None = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_int16_unpack); __Pyx_DECREF(__pyx_v_self->_int16_unpack); __pyx_v_self->_int16_unpack = Py_None;
+203: self._uint16_unpack: Callable | None = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_uint16_unpack); __Pyx_DECREF(__pyx_v_self->_uint16_unpack); __pyx_v_self->_uint16_unpack = Py_None;
204:
+205: def reset(self) -> None:
static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_3reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_reset(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reset); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_3reset)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_3reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_2reset[] = "Reset the unmarshaller to its initial state.\n\n Call this before processing a new message.\n "; static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_3reset = {"reset", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_3reset, METH_NOARGS, __pyx_doc_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_2reset}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_3reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_2reset(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_2reset(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("reset", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_reset(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__39 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39); /* … */ __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_3reset, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_reset, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_reset, __pyx_t_1) < 0) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_reset, 205, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 205, __pyx_L1_error)
206: """Reset the unmarshaller to its initial state.
207:
208: Call this before processing a new message.
209: """
+210: self._unix_fds = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_unix_fds); __Pyx_DECREF(__pyx_v_self->_unix_fds); __pyx_v_self->_unix_fds = __pyx_t_1; __pyx_t_1 = 0;
+211: self._buf.clear()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_buf, __pyx_n_s_clear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+212: self._message = None
__Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); __Pyx_GOTREF(__pyx_v_self->_message); __Pyx_DECREF(__pyx_v_self->_message); __pyx_v_self->_message = Py_None;
+213: self._pos = 0
__pyx_v_self->_pos = 0;
+214: self._body_len = 0
__pyx_v_self->_body_len = 0;
+215: self._serial = 0
__pyx_v_self->_serial = 0;
+216: self._header_len = 0
__pyx_v_self->_header_len = 0;
+217: self._message_type = 0
__pyx_v_self->_message_type = 0;
+218: self._flag = 0
__pyx_v_self->_flag = 0;
+219: self._msg_len = 0
__pyx_v_self->_msg_len = 0;
+220: self._is_native = 0
__pyx_v_self->_is_native = 0;
221: # No need to reset the unpack functions, they are set in _read_header
222: # every time a new message is processed.
223:
224: @property
+225: def message(self) -> Message:
/* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7message_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7message_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7message___get__(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7message___get__(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* … */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
226: """Return the message that has been unmarshalled."""
+227: return self._message
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_message); __pyx_r = __pyx_v_self->_message; goto __pyx_L0;
228:
+229: def _read_sock(self, length: int) -> bytes:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_sock(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, unsigned long __pyx_v_length) { PyObject *__pyx_v_unix_fd_list = NULL; PyObject *__pyx_v_msg = NULL; PyObject *__pyx_v_ancdata = NULL; CYTHON_UNUSED PyObject *__pyx_v__ = NULL; PyObject *__pyx_v_level = NULL; PyObject *__pyx_v_type_ = NULL; PyObject *__pyx_v_data = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_sock", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_sock", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_unix_fd_list); __Pyx_XDECREF(__pyx_v_msg); __Pyx_XDECREF(__pyx_v_ancdata); __Pyx_XDECREF(__pyx_v__); __Pyx_XDECREF(__pyx_v_level); __Pyx_XDECREF(__pyx_v_type_); __Pyx_XDECREF(__pyx_v_data); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
230: """reads from the socket, storing any fds sent and handling errors
231: from the read itself"""
+232: unix_fd_list = array.array("i")
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_n_u_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_n_u_i); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_unix_fd_list = __pyx_t_1; __pyx_t_1 = 0;
233:
+234: try:
{ /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* … */ __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); goto __pyx_L1_error; __pyx_L8_try_end:; }
+235: msg, ancdata, *_ = self._sock.recvmsg(
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_sock, __pyx_n_s_recvmsg); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 235, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_3); /* … */ } __pyx_t_2 = PySequence_List(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_msg = __pyx_t_3; __pyx_t_3 = 0; __pyx_v_ancdata = __pyx_t_11; __pyx_t_11 = 0; __pyx_v__ = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+236: length, socket.CMSG_LEN(MAX_UNIX_FDS * unix_fd_list.itemsize)
__pyx_t_2 = __Pyx_PyInt_From_unsigned_long(__pyx_v_length); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_socket); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 236, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_CMSG_LEN); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 236, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_MAX_UNIX_FDS); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 236, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_unix_fd_list, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 236, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyNumber_Multiply(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 236, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_7 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_11); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 236, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_12 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_12 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_2, __pyx_t_7}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_2, __pyx_t_7}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_11 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 235, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_12, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_12, __pyx_t_7); __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { Py_ssize_t index = -1; PyObject** temps[3] = {&__pyx_t_3,&__pyx_t_11}; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 235, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; for (index=0; index < 2; index++) { PyObject* item = __pyx_t_13(__pyx_t_7); if (unlikely(!item)) goto __pyx_L9_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } goto __pyx_L10_unpacking_done; __pyx_L9_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 235, __pyx_L3_error) __pyx_L10_unpacking_done:;
237: )
+238: except BlockingIOError:
__Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_2, &__pyx_t_11); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_BlockingIOError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 238, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_ErrRestore(__pyx_t_1, __pyx_t_2, __pyx_t_11); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_11 = 0; if (__pyx_t_12) { __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_sock", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_2, &__pyx_t_1) < 0) __PYX_ERR(0, 238, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_1);
+239: raise MarshallerStreamEndError()
__pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_MarshallerStreamEndError)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 239, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:;
240:
+241: for level, type_, data in ancdata:
if (likely(PyList_CheckExact(__pyx_v_ancdata)) || PyTuple_CheckExact(__pyx_v_ancdata)) { __pyx_t_1 = __pyx_v_ancdata; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0; __pyx_t_15 = NULL; } else { __pyx_t_14 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_ancdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_15 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 241, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_15)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_2); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 241, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_2); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 241, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_15(__pyx_t_1); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 241, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 241, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_11 = PyList_GET_ITEM(sequence, 0); __pyx_t_3 = PyList_GET_ITEM(sequence, 1); __pyx_t_7 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); #else __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_9)->tp_iternext; index = 0; __pyx_t_11 = __pyx_t_13(__pyx_t_9); if (unlikely(!__pyx_t_11)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_11); index = 1; __pyx_t_3 = __pyx_t_13(__pyx_t_9); if (unlikely(!__pyx_t_3)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 2; __pyx_t_7 = __pyx_t_13(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_9), 3) < 0) __PYX_ERR(0, 241, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L16_unpacking_done; __pyx_L15_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 241, __pyx_L1_error) __pyx_L16_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_level, __pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_data, __pyx_t_7); __pyx_t_7 = 0; /* … */ __pyx_L13_continue:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+242: if not (level == socket.SOL_SOCKET and type_ == socket.SCM_RIGHTS):
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_socket); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SOL_SOCKET); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_v_level, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_17) { } else { __pyx_t_16 = __pyx_t_17; goto __pyx_L18_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_socket); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_SCM_RIGHTS); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_16 = __pyx_t_17; __pyx_L18_bool_binop_done:; __pyx_t_17 = ((!__pyx_t_16) != 0); if (__pyx_t_17) { /* … */ }
+243: continue
goto __pyx_L13_continue;
+244: unix_fd_list.frombytes(
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_unix_fd_list, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7);
+245: data[: len(data) - (len(data) % unix_fd_list.itemsize)]
__pyx_t_18 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_18 == ((Py_ssize_t)-1))) __PYX_ERR(0, 245, __pyx_L1_error) __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_18 = PyObject_Length(__pyx_v_data); if (unlikely(__pyx_t_18 == ((Py_ssize_t)-1))) __PYX_ERR(0, 245, __pyx_L1_error) __pyx_t_11 = PyInt_FromSsize_t(__pyx_t_18); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_unix_fd_list, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyNumber_Remainder(__pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Subtract(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetSlice(__pyx_v_data, 0, 0, NULL, &__pyx_t_9, NULL, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_2 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
246: )
+247: self._unix_fds.extend(list(unix_fd_list))
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_unix_fds, __pyx_n_s_extend); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = PySequence_List(__pyx_v_unix_fd_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_2 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
248:
+249: return msg
__Pyx_XDECREF(__pyx_r); if (!(likely(PyBytes_CheckExact(__pyx_v_msg))||((__pyx_v_msg) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_msg)->tp_name), 0))) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_INCREF(__pyx_v_msg); __pyx_r = ((PyObject*)__pyx_v_msg); goto __pyx_L0;
250:
+251: def _read_to_pos(self, pos: int) -> None:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_to_pos(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, unsigned long __pyx_v_pos) { unsigned long __pyx_v_start_len; unsigned long __pyx_v_missing_bytes; PyObject *__pyx_v_data = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_to_pos", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_to_pos", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_data); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
252: """
253: Read from underlying socket into buffer.
254:
255: Raises MarshallerStreamEndError if there is not enough data to be read.
256:
257: :arg pos:
258: The pos to read to. If not enough bytes are available in the
259: buffer, read more from it.
260:
261: :returns:
262: None
263: """
+264: start_len = len(self._buf)
__pyx_t_1 = __pyx_v_self->_buf; __Pyx_INCREF(__pyx_t_1); if (unlikely(__pyx_t_1 == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 264, __pyx_L1_error) } __pyx_t_2 = PyByteArray_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_start_len = __pyx_t_2;
+265: missing_bytes = pos - (start_len - self._pos)
__pyx_v_missing_bytes = (__pyx_v_pos - (__pyx_v_start_len - __pyx_v_self->_pos));
+266: if self._sock is None:
__pyx_t_3 = (__pyx_v_self->_sock == Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { /* … */ goto __pyx_L3; }
+267: data = self._stream.read(missing_bytes)
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_stream, __pyx_n_s_read); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_unsigned_long(__pyx_v_missing_bytes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 267, __pyx_L1_error) __pyx_v_data = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
268: else:
+269: data = self._read_sock(missing_bytes)
/*else*/ { __pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_sock(__pyx_v_self, __pyx_v_missing_bytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_data = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; } __pyx_L3:;
+270: if data == b"":
__pyx_t_4 = (__Pyx_PyBytes_Equals(__pyx_v_data, __pyx_kp_b__3, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 270, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 != 0); if (unlikely(__pyx_t_3)) { /* … */ }
+271: raise EOFError()
__pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_builtin_EOFError); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 271, __pyx_L1_error)
+272: if data is None:
__pyx_t_3 = (__pyx_v_data == ((PyObject*)Py_None)); __pyx_t_4 = (__pyx_t_3 != 0); if (unlikely(__pyx_t_4)) { /* … */ }
+273: raise MarshallerStreamEndError()
__pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_MarshallerStreamEndError)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 273, __pyx_L1_error)
+274: self._buf += data
__pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_self->_buf, __pyx_v_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->_buf); __Pyx_DECREF(__pyx_v_self->_buf); __pyx_v_self->_buf = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+275: if len(data) + start_len != pos:
if (unlikely(__pyx_v_data == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 275, __pyx_L1_error) } __pyx_t_2 = PyBytes_GET_SIZE(__pyx_v_data); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 275, __pyx_L1_error) __pyx_t_4 = (((__pyx_t_2 + __pyx_v_start_len) != __pyx_v_pos) != 0); if (unlikely(__pyx_t_4)) { /* … */ }
+276: raise MarshallerStreamEndError()
__pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_MarshallerStreamEndError)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 276, __pyx_L1_error)
277:
+278: def read_uint32_unpack(self, type_: SignatureType) -> int:
static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_5read_uint32_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_uint32_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_type_, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_uint32_unpack", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_read_uint32_unpack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_5read_uint32_unpack)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_type_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_type_); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_uint32_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_5read_uint32_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_5read_uint32_unpack = {"read_uint32_unpack", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_5read_uint32_unpack, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_5read_uint32_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_uint32_unpack (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_4read_uint32_unpack(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_4read_uint32_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_uint32_unpack", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_uint32_unpack(__pyx_v_self, __pyx_v_type_, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_uint32_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__41 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41); /* … */ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_type, __pyx_t_6) < 0) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_5read_uint32_unpack, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_uint32_unpack, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_uint32_unpack, __pyx_t_6) < 0) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_uint32_unpack, 278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 278, __pyx_L1_error)
+279: return self._read_uint32_unpack()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_uint32_unpack(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
280:
+281: def _read_uint32_unpack(self) -> int:
static unsigned int __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_uint32_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { unsigned int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_uint32_unpack", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_WriteUnraisable("dbus_fast._private.unmarshaller.Unmarshaller._read_uint32_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+282: self._pos += UINT32_SIZE + (-self._pos & (UINT32_SIZE - 1)) # align
__pyx_v_self->_pos = (__pyx_v_self->_pos + (__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE + ((-__pyx_v_self->_pos) & (__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE - 1))));
+283: if self._is_native and cython.compiled:
__pyx_t_2 = (__pyx_v_self->_is_native != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (1 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+284: return _cast_uint32_native( # pragma: no cover
__pyx_r = __pyx_f_9dbus_fast_8_private_12unmarshaller__cast_uint32_native(__pyx_t_3, (__pyx_v_self->_pos - __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE)); goto __pyx_L0;
+285: self._buf, self._pos - UINT32_SIZE
__pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_self->_buf); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(0, 285, __pyx_L1_error)
286: )
+287: return self._uint32_unpack(self._buf, self._pos - UINT32_SIZE)[0]
__pyx_t_5 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_pos - __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_self->_uint32_unpack); __pyx_t_6 = __pyx_v_self->_uint32_unpack; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_self->_buf, __pyx_t_5}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_self->_buf, __pyx_t_5}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_v_self->_buf); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyInt_As_unsigned_int(__pyx_t_6); if (unlikely((__pyx_t_10 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_10; goto __pyx_L0;
288:
+289: def read_uint16_unpack(self, type_: SignatureType) -> int:
static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7read_uint16_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_uint16_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_type_, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_uint16_unpack", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_read_uint16_unpack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7read_uint16_unpack)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_type_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_type_); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_uint16_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7read_uint16_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7read_uint16_unpack = {"read_uint16_unpack", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7read_uint16_unpack, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7read_uint16_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_uint16_unpack (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_6read_uint16_unpack(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_6read_uint16_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_uint16_unpack", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_uint16_unpack(__pyx_v_self, __pyx_v_type_, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_uint16_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__43 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43); /* … */ __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_type, __pyx_t_1) < 0) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_7read_uint16_unpack, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_uint16_unpack, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_uint16_unpack, __pyx_t_1) < 0) __PYX_ERR(0, 289, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_uint16_unpack, 289, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 289, __pyx_L1_error)
+290: return self._read_uint16_unpack()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_uint16_unpack(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
291:
+292: def _read_uint16_unpack(self) -> int:
static unsigned int __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_uint16_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { unsigned int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_uint16_unpack", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_WriteUnraisable("dbus_fast._private.unmarshaller.Unmarshaller._read_uint16_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+293: self._pos += UINT16_SIZE + (-self._pos & (UINT16_SIZE - 1)) # align
__pyx_v_self->_pos = (__pyx_v_self->_pos + (__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_SIZE + ((-__pyx_v_self->_pos) & (__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_SIZE - 1))));
+294: if self._is_native and cython.compiled:
__pyx_t_2 = (__pyx_v_self->_is_native != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (1 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+295: return _cast_uint16_native( # pragma: no cover
__pyx_r = __pyx_f_9dbus_fast_8_private_12unmarshaller__cast_uint16_native(__pyx_t_3, (__pyx_v_self->_pos - __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_SIZE)); goto __pyx_L0;
+296: self._buf, self._pos - UINT16_SIZE
__pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_self->_buf); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(0, 296, __pyx_L1_error)
297: )
+298: return self._uint16_unpack(self._buf, self._pos - UINT16_SIZE)[0]
__pyx_t_5 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_pos - __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_SIZE)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_self->_uint16_unpack); __pyx_t_6 = __pyx_v_self->_uint16_unpack; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_self->_buf, __pyx_t_5}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_self->_buf, __pyx_t_5}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_v_self->_buf); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyInt_As_unsigned_int(__pyx_t_6); if (unlikely((__pyx_t_10 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_10; goto __pyx_L0;
299:
+300: def read_int16_unpack(self, type_: SignatureType) -> int:
static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_9read_int16_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_int16_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_type_, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_int16_unpack", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_read_int16_unpack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_9read_int16_unpack)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_type_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_type_); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_int16_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_9read_int16_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_9read_int16_unpack = {"read_int16_unpack", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_9read_int16_unpack, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_9read_int16_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_int16_unpack (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_8read_int16_unpack(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_8read_int16_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_int16_unpack", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_int16_unpack(__pyx_v_self, __pyx_v_type_, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_int16_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__45 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__45); __Pyx_GIVEREF(__pyx_tuple__45); /* … */ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_type, __pyx_t_6) < 0) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_9read_int16_unpack, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_int16_unpack, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_int16_unpack, __pyx_t_6) < 0) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_int16_unpack, 300, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 300, __pyx_L1_error)
+301: return self._read_int16_unpack()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_int16_unpack(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
302:
+303: def _read_int16_unpack(self) -> int:
static int __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_int16_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_int16_unpack", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_WriteUnraisable("dbus_fast._private.unmarshaller.Unmarshaller._read_int16_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+304: self._pos += INT16_SIZE + (-self._pos & (INT16_SIZE - 1)) # align
__pyx_v_self->_pos = (__pyx_v_self->_pos + (__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_SIZE + ((-__pyx_v_self->_pos) & (__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_SIZE - 1))));
+305: if self._is_native and cython.compiled:
__pyx_t_2 = (__pyx_v_self->_is_native != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (1 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+306: return _cast_int16_native( # pragma: no cover
__pyx_r = __pyx_f_9dbus_fast_8_private_12unmarshaller__cast_int16_native(__pyx_t_3, (__pyx_v_self->_pos - __pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_SIZE)); goto __pyx_L0;
+307: self._buf, self._pos - INT16_SIZE
__pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_self->_buf); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L1_error)
308: )
+309: return self._int16_unpack(self._buf, self._pos - INT16_SIZE)[0]
__pyx_t_5 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_pos - __pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_SIZE)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_self->_int16_unpack); __pyx_t_6 = __pyx_v_self->_int16_unpack; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_self->_buf, __pyx_t_5}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_self->_buf, __pyx_t_5}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_v_self->_buf); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 309, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_8; goto __pyx_L0;
310:
+311: def read_boolean(self, type_: SignatureType) -> bool:
static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_11read_boolean(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_boolean(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_type_, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_boolean", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_read_boolean); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_11read_boolean)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_type_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_type_); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_boolean", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_11read_boolean(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_11read_boolean = {"read_boolean", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_11read_boolean, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_11read_boolean(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_boolean (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_10read_boolean(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_10read_boolean(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_boolean", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_boolean(__pyx_v_self, __pyx_v_type_, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_boolean", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__47 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__47); __Pyx_GIVEREF(__pyx_tuple__47); /* … */ __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_type, __pyx_t_1) < 0) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_11read_boolean, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_boolean, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_boolean, __pyx_t_1) < 0) __PYX_ERR(0, 311, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_boolean, 311, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 311, __pyx_L1_error)
+312: return self._read_boolean()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_boolean(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
313:
+314: def _read_boolean(self) -> bool:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_boolean(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_boolean", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_boolean", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+315: return bool(self._read_uint32_unpack())
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_uint32_unpack(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
316:
+317: def read_string_unpack(self, type_: SignatureType) -> str:
static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_13read_string_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_string_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_type_, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_string_unpack", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_read_string_unpack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_13read_string_unpack)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_type_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_type_); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_string_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_13read_string_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_13read_string_unpack = {"read_string_unpack", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_13read_string_unpack, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_13read_string_unpack(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_string_unpack (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_12read_string_unpack(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_12read_string_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_string_unpack", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_string_unpack(__pyx_v_self, __pyx_v_type_, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_string_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__49 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__49); __Pyx_GIVEREF(__pyx_tuple__49); /* … */ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_type, __pyx_t_6) < 0) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_13read_string_unpack, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_string_unpack, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_string_unpack, __pyx_t_6) < 0) __PYX_ERR(0, 317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_string_unpack, 317, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 317, __pyx_L1_error)
+318: return self._read_string_unpack()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
319:
+320: def _read_string_unpack(self) -> str:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_string_unpack(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { unsigned int __pyx_v_str_start; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_string_unpack", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_string_unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
321: """Read a string using unpack."""
+322: self._pos += UINT32_SIZE + (-self._pos & (UINT32_SIZE - 1)) # align
__pyx_v_self->_pos = (__pyx_v_self->_pos + (__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE + ((-__pyx_v_self->_pos) & (__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE - 1))));
+323: str_start = self._pos
__pyx_t_1 = __pyx_v_self->_pos; __pyx_v_str_start = __pyx_t_1;
324: # read terminating '\0' byte as well (str_length + 1)
+325: if self._is_native and cython.compiled:
__pyx_t_3 = (__pyx_v_self->_is_native != 0); if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (1 != 0); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L3; }
+326: self._pos += ( # pragma: no cover
__pyx_v_self->_pos = (__pyx_v_self->_pos + (__pyx_f_9dbus_fast_8_private_12unmarshaller__cast_uint32_native(__pyx_t_4, (__pyx_v_str_start - __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE)) + 1));
+327: _cast_uint32_native(self._buf, str_start - UINT32_SIZE) + 1
__pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_self->_buf); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 327, __pyx_L1_error)
328: )
329: else:
+330: self._pos += self._uint32_unpack(self._buf, str_start - UINT32_SIZE)[0] + 1
/*else*/ { __pyx_t_5 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyInt_From_unsigned_int((__pyx_v_str_start - __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_self->_uint32_unpack); __pyx_t_8 = __pyx_v_self->_uint32_unpack; __pyx_t_9 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_self->_buf, __pyx_t_7}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_v_self->_buf, __pyx_t_7}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_11 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_v_self->_buf); PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_8, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyInt_As_unsigned_int(__pyx_t_8); if (unlikely((__pyx_t_1 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 330, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_self->_pos = __pyx_t_1; } __pyx_L3:;
+331: return self._buf[str_start : self._pos - 1].decode()
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->_buf == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_8 = __Pyx_decode_bytearray(__pyx_v_self->_buf, __pyx_v_str_start, (__pyx_v_self->_pos - 1), NULL, NULL, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0;
332:
+333: def read_signature(self, type_: SignatureType) -> str:
static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_15read_signature(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_signature(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_type_, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_signature", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_read_signature); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_15read_signature)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_type_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_type_); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_signature", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_15read_signature(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_15read_signature = {"read_signature", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_15read_signature, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_15read_signature(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_signature (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_14read_signature(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_14read_signature(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_signature", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_signature(__pyx_v_self, __pyx_v_type_, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_signature", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__51 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__51); __Pyx_GIVEREF(__pyx_tuple__51); /* … */ __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_type, __pyx_t_1) < 0) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_15read_signature, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_signature, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_signature, __pyx_t_1) < 0) __PYX_ERR(0, 333, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_signature, 333, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 333, __pyx_L1_error)
+334: return self._read_signature()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_signature(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
335:
+336: def _read_signature(self) -> str:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_signature(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { unsigned long __pyx_v_o; unsigned int __pyx_v_signature_len; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_signature", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_signature", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+337: signature_len = self._buf[self._pos] # byte
__pyx_t_1 = __Pyx_GetItemInt_ByteArray(__pyx_v_self->_buf, __pyx_v_self->_pos, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(0, 337, __pyx_L1_error) __pyx_v_signature_len = __pyx_t_1;
+338: o = self._pos + 1
__pyx_v_o = (__pyx_v_self->_pos + 1);
339: # read terminating '\0' byte as well (str_length + 1)
+340: self._pos = o + signature_len + 1
__pyx_v_self->_pos = ((__pyx_v_o + __pyx_v_signature_len) + 1);
+341: return self._buf[o : o + signature_len].decode()
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->_buf == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 341, __pyx_L1_error) } __pyx_t_2 = __Pyx_decode_bytearray(__pyx_v_self->_buf, __pyx_v_o, (__pyx_v_o + __pyx_v_signature_len), NULL, NULL, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
342:
+343: def read_variant(self, type_: SignatureType) -> Variant:
/* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_17read_variant(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_17read_variant = {"read_variant", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_17read_variant, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_17read_variant(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_variant (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_16read_variant(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_16read_variant(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_type_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_variant", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_variant", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__53 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__53); __Pyx_GIVEREF(__pyx_tuple__53); /* … */ __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_type, __pyx_t_6) < 0) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_return, __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant) < 0) __PYX_ERR(0, 343, __pyx_L1_error) __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_17read_variant, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_variant, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_6, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_variant, __pyx_t_6) < 0) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_variant, 343, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 343, __pyx_L1_error)
+344: return self._read_variant()
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_variant(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
345:
+346: def _read_variant(self) -> Variant:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_variant(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { PyObject *__pyx_v_signature = NULL; PyObject *__pyx_v_tree = NULL; PyObject *__pyx_v_signature_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_variant", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_variant", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_signature); __Pyx_XDECREF(__pyx_v_tree); __Pyx_XDECREF(__pyx_v_signature_type); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+347: signature = self._read_signature()
__pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_signature(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_signature = __pyx_t_1; __pyx_t_1 = 0;
348: # verify in Variant is only useful on construction not unmarshalling
+349: if signature == "n":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_n_u_n, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 349, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+350: return Variant(SIGNATURE_TREE_N, self._read_int16_unpack(), False)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = __Pyx_PyInt_From_int(((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_int16_unpack(__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __pyx_t_4 = __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant; __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_N, __pyx_t_3, Py_False}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_N, __pyx_t_3, Py_False}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_N); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_N); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_N); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_3); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, Py_False); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+351: elif signature == "ay":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_n_u_ay, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 351, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+352: return Variant(
__Pyx_XDECREF(__pyx_r);
+353: SIGNATURE_TREE_AY, self._read_array(SIGNATURE_TREE_AY_TYPES_0), False
__pyx_t_4 = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY_TYPES_0; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __pyx_t_4 = __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant; __pyx_t_3 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY, __pyx_t_7, Py_False}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY, __pyx_t_7, Py_False}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AY); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_7); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, Py_False); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
354: )
+355: elif signature == "a{qv}":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_kp_u_a_qv, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 355, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+356: return Variant(
__Pyx_XDECREF(__pyx_r);
357: SIGNATURE_TREE_A_QV,
+358: self._read_array(SIGNATURE_TREE_A_QV_TYPES_0),
__pyx_t_4 = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV_TYPES_0; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+359: False,
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __pyx_t_4 = __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant; __pyx_t_7 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV, __pyx_t_5, Py_False}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV, __pyx_t_5, Py_False}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_3 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_QV); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_t_5); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, Py_False); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
360: )
+361: elif signature == "s":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_n_u_s, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 361, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+362: return Variant(SIGNATURE_TREE_S, self._read_string_unpack(), False)
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __pyx_t_3 = __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant; __pyx_t_5 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_S, __pyx_t_4, Py_False}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_S, __pyx_t_4, Py_False}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_S); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_S); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_S); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, Py_False); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+363: elif signature == "b":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_n_u_b, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 363, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+364: return Variant(SIGNATURE_TREE_B, self._read_boolean(), False)
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_boolean(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __pyx_t_7 = __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant; __pyx_t_4 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_B, __pyx_t_3, Py_False}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_B, __pyx_t_3, Py_False}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_5 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_B); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_B); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_B); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_3); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, Py_False); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+365: elif signature == "o":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_n_u_o, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 365, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+366: return Variant(SIGNATURE_TREE_O, self._read_string_unpack(), False)
__Pyx_XDECREF(__pyx_r); __pyx_t_7 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __pyx_t_5 = __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant; __pyx_t_3 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_O, __pyx_t_7, Py_False}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_O, __pyx_t_7, Py_False}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_4 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_O); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_O); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_O); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_t_7); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, Py_False); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+367: elif signature == "as":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_n_u_as, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 367, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+368: return Variant(
__Pyx_XDECREF(__pyx_r);
+369: SIGNATURE_TREE_AS, self._read_array(SIGNATURE_TREE_AS_TYPES_0), False
__pyx_t_5 = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS_TYPES_0; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __pyx_t_5 = __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant; __pyx_t_7 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS, __pyx_t_4, Py_False}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS, __pyx_t_4, Py_False}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_3 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_AS); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_t_4); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, Py_False); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
370: )
+371: elif signature == "a{sv}":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_kp_u_a_sv, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 371, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+372: return Variant(
__Pyx_XDECREF(__pyx_r);
373: SIGNATURE_TREE_A_SV,
+374: self._read_array(SIGNATURE_TREE_A_SV_TYPES_0),
__pyx_t_5 = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV_TYPES_0; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+375: False,
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __pyx_t_5 = __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant; __pyx_t_4 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV, __pyx_t_3, Py_False}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV, __pyx_t_3, Py_False}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_A_SV); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_3); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, Py_False); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
376: )
+377: tree = get_signature_tree(signature)
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree); __pyx_t_5 = __pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_v_signature) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_signature); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_tree = __pyx_t_1; __pyx_t_1 = 0;
+378: signature_type = tree.types[0]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_tree, __pyx_n_s_types); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_signature_type = __pyx_t_5; __pyx_t_5 = 0;
+379: return Variant(
__Pyx_XDECREF(__pyx_r);
380: tree,
+381: self._readers[signature_type.token](self, signature_type),
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_signature_type, __pyx_n_s_token); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->_readers, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), __pyx_v_signature_type}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_7, ((PyObject *)__pyx_v_self), __pyx_v_signature_type}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_signature_type); __Pyx_GIVEREF(__pyx_v_signature_type); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_signature_type); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+382: False,
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_Variant); __pyx_t_3 = __pyx_v_9dbus_fast_8_private_12unmarshaller_Variant; __pyx_t_4 = NULL; __pyx_t_6 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_6 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_tree, __pyx_t_1, Py_False}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_tree, __pyx_t_1, Py_False}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_INCREF(__pyx_v_tree); __Pyx_GIVEREF(__pyx_v_tree); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_tree); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_1); __Pyx_INCREF(Py_False); __Pyx_GIVEREF(Py_False); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, Py_False); __pyx_t_1 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
383: )
384:
+385: def read_struct(self, type_: SignatureType) -> List[Any]:
/* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_19read_struct(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_19read_struct = {"read_struct", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_19read_struct, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_19read_struct(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_struct (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_18read_struct(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_18read_struct(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_v_readers = NULL; PyObject *__pyx_7genexpr__pyx_v_child_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_struct", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_struct", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_readers); __Pyx_XDECREF(__pyx_7genexpr__pyx_v_child_type); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__55 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_type, __pyx_n_s_readers_2, __pyx_n_s_child_type); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__55); __Pyx_GIVEREF(__pyx_tuple__55); /* … */ __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_type, __pyx_t_1) < 0) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_List); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_Any); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_return, __pyx_t_5) < 0) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_19read_struct, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_struct, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_struct, __pyx_t_5) < 0) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_struct, 385, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 385, __pyx_L1_error)
+386: self._pos += -self._pos & 7 # align 8
__pyx_v_self->_pos = (__pyx_v_self->_pos + ((-__pyx_v_self->_pos) & 7));
+387: readers = self._readers
__pyx_t_1 = __pyx_v_self->_readers;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_readers = __pyx_t_1;
__pyx_t_1 = 0;
+388: return [
__Pyx_XDECREF(__pyx_r); { /* enter inner scope */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_1);
+389: readers[child_type.token](self, child_type) for child_type in type_.children
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 389, __pyx_L5_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_5)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 389, __pyx_L5_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 389, __pyx_L5_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_5(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 389, __pyx_L5_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_child_type, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_7genexpr__pyx_v_child_type, __pyx_n_s_token); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_readers, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_7genexpr__pyx_v_child_type}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_7genexpr__pyx_v_child_type}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_7genexpr__pyx_v_child_type); __Pyx_GIVEREF(__pyx_7genexpr__pyx_v_child_type); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_7genexpr__pyx_v_child_type); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 389, __pyx_L5_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 388, __pyx_L5_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_child_type); __pyx_7genexpr__pyx_v_child_type = 0; goto __pyx_L8_exit_scope; __pyx_L5_error:; __Pyx_XDECREF(__pyx_7genexpr__pyx_v_child_type); __pyx_7genexpr__pyx_v_child_type = 0; goto __pyx_L1_error; __pyx_L8_exit_scope:; } /* exit inner scope */ __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
390: ]
391:
+392: def read_dict_entry(self, type_: SignatureType) -> Tuple[Any, Any]:
/* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_21read_dict_entry(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_21read_dict_entry = {"read_dict_entry", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_21read_dict_entry, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_21read_dict_entry(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_dict_entry (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_20read_dict_entry(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_20read_dict_entry(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_dict_entry", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_dict_entry", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__57 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__57); __Pyx_GIVEREF(__pyx_tuple__57); /* … */ __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_type, __pyx_t_6) < 0) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_Tuple); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_Any); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Any); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); __pyx_t_8 = 0; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_return, __pyx_t_1) < 0) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_21read_dict_entry, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_dict_entry, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_1, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_dict_entry, __pyx_t_1) < 0) __PYX_ERR(0, 392, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_dict_entry, 392, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 392, __pyx_L1_error)
+393: self._pos += -self._pos & 7 # align 8
__pyx_v_self->_pos = (__pyx_v_self->_pos + ((-__pyx_v_self->_pos) & 7));
+394: return self._readers[type_.children[0].token](
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_token); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_self->_readers, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
+395: self, type_.children[0]
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_n_s_children); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_self), __pyx_t_4}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_self), __pyx_t_4}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, ((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+396: ), self._readers[type_.children[1].token](self, type_.children[1])
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_n_s_children); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_token); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->_readers, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_n_s_children); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_t_2}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_6, ((PyObject *)__pyx_v_self), __pyx_t_2}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_5, ((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_5, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
397:
+398: def read_array(self, type_: SignatureType) -> Iterable[Any]:
static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_23read_array(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_array(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_array", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_read_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_23read_array)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_type_) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_type_); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_23read_array(PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /*proto*/ static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_23read_array = {"read_array", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_23read_array, METH_O, 0}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_23read_array(PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_array (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_22read_array(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self), ((PyObject *)__pyx_v_type_)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_22read_array(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("read_array", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_read_array(__pyx_v_self, __pyx_v_type_, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.read_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__59 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__59); __Pyx_GIVEREF(__pyx_tuple__59); /* … */ __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SignatureType); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_type, __pyx_t_5) < 0) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_23read_array, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_read_array, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_5, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_read_array, __pyx_t_5) < 0) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_read_array, 398, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(0, 398, __pyx_L1_error)
+399: return self._read_array(type_)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_v_type_); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
400:
+401: def _read_array(self, type_: SignatureType) -> Iterable[Any]:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_array(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, PyObject *__pyx_v_type_) { unsigned long __pyx_v_beginning_pos; unsigned int __pyx_v_array_length; PyObject *__pyx_v_child_type = NULL; PyObject *__pyx_v_token = NULL; PyObject *__pyx_v_result_dict = NULL; PyObject *__pyx_v_children = NULL; PyObject *__pyx_v_child_0 = NULL; PyObject *__pyx_v_child_1 = NULL; PyObject *__pyx_v_child_0_token = NULL; PyObject *__pyx_v_child_1_token = NULL; PyObject *__pyx_v_key = NULL; PyObject *__pyx_v_reader_1 = NULL; PyObject *__pyx_v_reader_0 = NULL; PyObject *__pyx_v_result_list = NULL; PyObject *__pyx_v_reader = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_array", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_child_type); __Pyx_XDECREF(__pyx_v_token); __Pyx_XDECREF(__pyx_v_result_dict); __Pyx_XDECREF(__pyx_v_children); __Pyx_XDECREF(__pyx_v_child_0); __Pyx_XDECREF(__pyx_v_child_1); __Pyx_XDECREF(__pyx_v_child_0_token); __Pyx_XDECREF(__pyx_v_child_1_token); __Pyx_XDECREF(__pyx_v_key); __Pyx_XDECREF(__pyx_v_reader_1); __Pyx_XDECREF(__pyx_v_reader_0); __Pyx_XDECREF(__pyx_v_result_list); __Pyx_XDECREF(__pyx_v_reader); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+402: self._pos += -self._pos & 3 # align 4 for the array
__pyx_v_self->_pos = (__pyx_v_self->_pos + ((-__pyx_v_self->_pos) & 3));
+403: self._pos += (
__pyx_v_self->_pos = (__pyx_v_self->_pos + (((-__pyx_v_self->_pos) & (__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE - 1)) + __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE));
404: -self._pos & (UINT32_SIZE - 1)
405: ) + UINT32_SIZE # align for the uint32
+406: if self._is_native and cython.compiled:
__pyx_t_2 = (__pyx_v_self->_is_native != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (1 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+407: array_length = _cast_uint32_native( # pragma: no cover
__pyx_v_array_length = __pyx_f_9dbus_fast_8_private_12unmarshaller__cast_uint32_native(__pyx_t_3, (__pyx_v_self->_pos - __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE));
+408: self._buf, self._pos - UINT32_SIZE
__pyx_t_3 = __Pyx_PyObject_AsString(__pyx_v_self->_buf); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(0, 408, __pyx_L1_error)
409: )
410: else:
+411: array_length = self._uint32_unpack(self._buf, self._pos - UINT32_SIZE)[0]
/*else*/ { __pyx_t_5 = __Pyx_PyInt_From_unsigned_int((__pyx_v_self->_pos - __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_SIZE)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_self->_uint32_unpack); __pyx_t_6 = __pyx_v_self->_uint32_unpack; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_self->_buf, __pyx_t_5}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_self->_buf, __pyx_t_5}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_v_self->_buf); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyInt_As_unsigned_int(__pyx_t_6); if (unlikely((__pyx_t_10 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 411, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_array_length = __pyx_t_10; } __pyx_L3:;
412:
+413: child_type = type_.children[0]
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_n_s_children); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_child_type = __pyx_t_4; __pyx_t_4 = 0;
+414: token = child_type.token
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_child_type, __pyx_n_s_token); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_token = __pyx_t_4; __pyx_t_4 = 0;
415:
+416: if token in "xtd{(":
__pyx_t_1 = (__Pyx_PyUnicode_ContainsTF(__pyx_v_token, __pyx_kp_u_xtd, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 416, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
417: # the first alignment is not included in the array size
+418: self._pos += -self._pos & 7 # align 8
__pyx_v_self->_pos = (__pyx_v_self->_pos + ((-__pyx_v_self->_pos) & 7));
419:
+420: if token == "y":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_token, __pyx_n_u_y, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 420, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+421: self._pos += array_length
__pyx_v_self->_pos = (__pyx_v_self->_pos + __pyx_v_array_length);
+422: return self._buf[self._pos - array_length : self._pos]
__Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_self->_buf == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 422, __pyx_L1_error) } __pyx_t_4 = PySequence_GetSlice(__pyx_v_self->_buf, (__pyx_v_self->_pos - __pyx_v_array_length), __pyx_v_self->_pos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
423:
+424: if token == "{":
__pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_token, __pyx_kp_u__4, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 424, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+425: result_dict = {}
__pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_result_dict = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+426: beginning_pos = self._pos
__pyx_t_10 = __pyx_v_self->_pos; __pyx_v_beginning_pos = __pyx_t_10;
+427: children = child_type.children
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_child_type, __pyx_n_s_children); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_children = __pyx_t_4; __pyx_t_4 = 0;
+428: child_0 = children[0]
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_children, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_child_0 = __pyx_t_4; __pyx_t_4 = 0;
+429: child_1 = children[1]
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_children, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_child_1 = __pyx_t_4; __pyx_t_4 = 0;
+430: child_0_token = child_0.token
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_child_0, __pyx_n_s_token); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_child_0_token = __pyx_t_4; __pyx_t_4 = 0;
+431: child_1_token = child_1.token
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_child_1, __pyx_n_s_token); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_child_1_token = __pyx_t_4; __pyx_t_4 = 0;
432: # Strings with variant values are the most common case
433: # so we optimize for that by inlining the string reading
434: # and the variant reading here
+435: if child_0_token in "os" and child_1_token == "v":
__pyx_t_1 = (__Pyx_PyUnicode_ContainsTF(__pyx_v_child_0_token, __pyx_n_u_os, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 435, __pyx_L1_error) __pyx_t_11 = (__pyx_t_1 != 0); if (__pyx_t_11) { } else { __pyx_t_2 = __pyx_t_11; goto __pyx_L10_bool_binop_done; } __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_child_1_token, __pyx_n_u_v, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 435, __pyx_L1_error) __pyx_t_2 = __pyx_t_11; __pyx_L10_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L9; }
+436: while self._pos - beginning_pos < array_length:
while (1) { __pyx_t_2 = (((__pyx_v_self->_pos - __pyx_v_beginning_pos) < __pyx_v_array_length) != 0); if (!__pyx_t_2) break;
+437: self._pos += -self._pos & 7 # align 8
__pyx_v_self->_pos = (__pyx_v_self->_pos + ((-__pyx_v_self->_pos) & 7));
+438: key = self._read_string_unpack()
__pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_4); __pyx_t_4 = 0;
+439: result_dict[key] = self._read_variant()
__pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_variant(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(PyDict_SetItem(__pyx_v_result_dict, __pyx_v_key, __pyx_t_4) < 0)) __PYX_ERR(0, 439, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
+440: elif child_0_token == "q" and child_1_token == "v":
__pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_child_0_token, __pyx_n_u_q, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 440, __pyx_L1_error) if (__pyx_t_11) { } else { __pyx_t_2 = __pyx_t_11; goto __pyx_L14_bool_binop_done; } __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_child_1_token, __pyx_n_u_v, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 440, __pyx_L1_error) __pyx_t_2 = __pyx_t_11; __pyx_L14_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L9; }
+441: while self._pos - beginning_pos < array_length:
while (1) { __pyx_t_2 = (((__pyx_v_self->_pos - __pyx_v_beginning_pos) < __pyx_v_array_length) != 0); if (!__pyx_t_2) break;
+442: self._pos += -self._pos & 7 # align 8
__pyx_v_self->_pos = (__pyx_v_self->_pos + ((-__pyx_v_self->_pos) & 7));
+443: key = self._read_uint16_unpack()
__pyx_t_4 = __Pyx_PyInt_From_unsigned_int(((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_uint16_unpack(__pyx_v_self)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_4); __pyx_t_4 = 0;
+444: result_dict[key] = self._read_variant()
__pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_variant(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(PyDict_SetItem(__pyx_v_result_dict, __pyx_v_key, __pyx_t_4) < 0)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
+445: elif child_0_token == "s" and child_1_token == "a":
__pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_child_0_token, __pyx_n_u_s, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 445, __pyx_L1_error) if (__pyx_t_11) { } else { __pyx_t_2 = __pyx_t_11; goto __pyx_L18_bool_binop_done; } __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_child_1_token, __pyx_n_u_a, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 445, __pyx_L1_error) __pyx_t_2 = __pyx_t_11; __pyx_L18_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L9; }
+446: while self._pos - beginning_pos < array_length:
while (1) { __pyx_t_2 = (((__pyx_v_self->_pos - __pyx_v_beginning_pos) < __pyx_v_array_length) != 0); if (!__pyx_t_2) break;
+447: self._pos += -self._pos & 7 # align 8
__pyx_v_self->_pos = (__pyx_v_self->_pos + ((-__pyx_v_self->_pos) & 7));
+448: key = self._read_string_unpack()
__pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_4); __pyx_t_4 = 0;
+449: result_dict[key] = self._read_array(child_1)
__pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_v_child_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(PyDict_SetItem(__pyx_v_result_dict, __pyx_v_key, __pyx_t_4) < 0)) __PYX_ERR(0, 449, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
450: else:
+451: reader_1 = self._readers[child_1_token]
/*else*/ { __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->_readers, __pyx_v_child_1_token); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_reader_1 = __pyx_t_4; __pyx_t_4 = 0;
+452: reader_0 = self._readers[child_0_token]
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->_readers, __pyx_v_child_0_token); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_reader_0 = __pyx_t_4; __pyx_t_4 = 0;
+453: while self._pos - beginning_pos < array_length:
while (1) { __pyx_t_2 = (((__pyx_v_self->_pos - __pyx_v_beginning_pos) < __pyx_v_array_length) != 0); if (!__pyx_t_2) break;
+454: self._pos += -self._pos & 7 # align 8
__pyx_v_self->_pos = (__pyx_v_self->_pos + ((-__pyx_v_self->_pos) & 7));
+455: key = reader_0(self, child_0)
__Pyx_INCREF(__pyx_v_reader_0); __pyx_t_6 = __pyx_v_reader_0; __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_self), __pyx_v_child_0}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_self), __pyx_v_child_0}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_child_0); __Pyx_GIVEREF(__pyx_v_child_0); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_child_0); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_4); __pyx_t_4 = 0;
+456: result_dict[key] = reader_1(self, child_1)
__Pyx_INCREF(__pyx_v_reader_1); __pyx_t_6 = __pyx_v_reader_1; __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_child_1}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_self), __pyx_v_child_1}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_child_1); __Pyx_GIVEREF(__pyx_v_child_1); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_child_1); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyDict_SetItem(__pyx_v_result_dict, __pyx_v_key, __pyx_t_4) < 0)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __pyx_L9:;
457:
+458: return result_dict
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result_dict); __pyx_r = __pyx_v_result_dict; goto __pyx_L0;
459:
+460: if array_length == 0:
__pyx_t_2 = ((__pyx_v_array_length == 0) != 0); if (__pyx_t_2) { /* … */ }
+461: return []
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
462:
+463: result_list = []
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_result_list = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+464: beginning_pos = self._pos
__pyx_t_10 = __pyx_v_self->_pos; __pyx_v_beginning_pos = __pyx_t_10;
+465: if token in "os":
__pyx_t_2 = (__Pyx_PyUnicode_ContainsTF(__pyx_v_token, __pyx_n_u_os, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 465, __pyx_L1_error) __pyx_t_11 = (__pyx_t_2 != 0); if (__pyx_t_11) { /* … */ }
+466: while self._pos - beginning_pos < array_length:
while (1) { __pyx_t_11 = (((__pyx_v_self->_pos - __pyx_v_beginning_pos) < __pyx_v_array_length) != 0); if (!__pyx_t_11) break;
+467: result_list.append(self._read_string_unpack())
__pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_result_list, __pyx_t_4); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 467, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
+468: return result_list
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result_list); __pyx_r = __pyx_v_result_list; goto __pyx_L0;
+469: reader = self._readers[token]
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_self->_readers, __pyx_v_token); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_reader = __pyx_t_4; __pyx_t_4 = 0;
+470: while self._pos - beginning_pos < array_length:
while (1) { __pyx_t_11 = (((__pyx_v_self->_pos - __pyx_v_beginning_pos) < __pyx_v_array_length) != 0); if (!__pyx_t_11) break;
+471: result_list.append(reader(self, child_type))
__Pyx_INCREF(__pyx_v_reader); __pyx_t_6 = __pyx_v_reader; __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_self), __pyx_v_child_type}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 471, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_self), __pyx_v_child_type}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 471, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_v_child_type); __Pyx_GIVEREF(__pyx_v_child_type); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_child_type); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_result_list, __pyx_t_4); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
+472: return result_list
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result_list); __pyx_r = __pyx_v_result_list; goto __pyx_L0;
473:
+474: def header_fields(self, header_length: int) -> Dict[str, Any]:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_header_fields(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, unsigned int __pyx_v_header_length) { unsigned long __pyx_v_beginning_pos; unsigned long __pyx_v_o; unsigned int __pyx_v_field_0; unsigned int __pyx_v_token_as_int; unsigned int __pyx_v_signature_len; PyObject *__pyx_v_headers = NULL; PyObject *__pyx_v_buf = NULL; PyObject *__pyx_v_readers = NULL; PyObject *__pyx_v_key = NULL; PyObject *__pyx_v_token = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("header_fields", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.header_fields", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_headers); __Pyx_XDECREF(__pyx_v_buf); __Pyx_XDECREF(__pyx_v_readers); __Pyx_XDECREF(__pyx_v_key); __Pyx_XDECREF(__pyx_v_token); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
475: """Header fields are always a(yv)."""
+476: beginning_pos = self._pos
__pyx_t_1 = __pyx_v_self->_pos; __pyx_v_beginning_pos = __pyx_t_1;
+477: headers = {}
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_headers = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+478: buf = self._buf
__pyx_t_2 = __pyx_v_self->_buf;
__Pyx_INCREF(__pyx_t_2);
__pyx_v_buf = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+479: readers = self._readers
__pyx_t_2 = __pyx_v_self->_readers;
__Pyx_INCREF(__pyx_t_2);
__pyx_v_readers = __pyx_t_2;
__pyx_t_2 = 0;
+480: while self._pos - beginning_pos < header_length:
while (1) { __pyx_t_3 = (((__pyx_v_self->_pos - __pyx_v_beginning_pos) < __pyx_v_header_length) != 0); if (!__pyx_t_3) break;
481: # Now read the y (byte) of struct (yv)
+482: self._pos += (-self._pos & 7) + 1 # align 8 + 1 for 'y' byte
__pyx_v_self->_pos = (__pyx_v_self->_pos + (((-__pyx_v_self->_pos) & 7) + 1));
+483: field_0 = buf[self._pos - 1]
__pyx_t_4 = (__pyx_v_self->_pos - 1); __pyx_t_5 = __Pyx_GetItemInt_ByteArray(__pyx_v_buf, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 483, __pyx_L1_error) __pyx_v_field_0 = __pyx_t_5;
484:
485: # Now read the v (variant) of struct (yv)
486: # first we read the signature
+487: signature_len = buf[self._pos] # byte
__pyx_t_5 = __Pyx_GetItemInt_ByteArray(__pyx_v_buf, __pyx_v_self->_pos, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 487, __pyx_L1_error) __pyx_v_signature_len = __pyx_t_5;
+488: o = self._pos + 1
__pyx_v_o = (__pyx_v_self->_pos + 1);
+489: self._pos += signature_len + 2 # one for the byte, one for the '\0'
__pyx_v_self->_pos = (__pyx_v_self->_pos + (__pyx_v_signature_len + 2));
+490: token_as_int = buf[o]
__pyx_t_5 = __Pyx_GetItemInt_ByteArray(__pyx_v_buf, __pyx_v_o, unsigned long, 0, __Pyx_PyInt_From_unsigned_long, 0, 0, 1); if (unlikely(__pyx_t_5 == -1)) __PYX_ERR(0, 490, __pyx_L1_error) __pyx_v_token_as_int = __pyx_t_5;
491: # Now that we have the token we can read the variant value
+492: key = HEADER_MESSAGE_ARG_NAME[field_0]
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_9dbus_fast_8_private_12unmarshaller_HEADER_MESSAGE_ARG_NAME, __pyx_v_field_0, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_2); __pyx_t_2 = 0;
493: # Strings and signatures are the most common types
494: # so we inline them for performance
+495: if token_as_int == TOKEN_O_AS_INT or token_as_int == TOKEN_S_AS_INT:
__pyx_t_6 = ((__pyx_v_token_as_int == __pyx_v_9dbus_fast_8_private_12unmarshaller_TOKEN_O_AS_INT) != 0); if (!__pyx_t_6) { } else { __pyx_t_3 = __pyx_t_6; goto __pyx_L6_bool_binop_done; } __pyx_t_6 = ((__pyx_v_token_as_int == __pyx_v_9dbus_fast_8_private_12unmarshaller_TOKEN_S_AS_INT) != 0); __pyx_t_3 = __pyx_t_6; __pyx_L6_bool_binop_done:; if (__pyx_t_3) { /* … */ goto __pyx_L5; }
+496: headers[key] = self._read_string_unpack()
__pyx_t_2 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyDict_SetItem(__pyx_v_headers, __pyx_v_key, __pyx_t_2) < 0)) __PYX_ERR(0, 496, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+497: elif token_as_int == TOKEN_G_AS_INT:
__pyx_t_3 = ((__pyx_v_token_as_int == __pyx_v_9dbus_fast_8_private_12unmarshaller_TOKEN_G_AS_INT) != 0); if (__pyx_t_3) { /* … */ goto __pyx_L5; }
+498: headers[key] = self._read_signature()
__pyx_t_2 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_signature(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(PyDict_SetItem(__pyx_v_headers, __pyx_v_key, __pyx_t_2) < 0)) __PYX_ERR(0, 498, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
499: else:
+500: token = buf[o : o + signature_len].decode()
/*else*/ { if (unlikely(__pyx_v_buf == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 500, __pyx_L1_error) } __pyx_t_2 = __Pyx_decode_bytearray(__pyx_v_buf, __pyx_v_o, (__pyx_v_o + __pyx_v_signature_len), NULL, NULL, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_token, __pyx_t_2); __pyx_t_2 = 0;
501: # There shouldn't be any other types in the header
502: # but just in case, we'll read it using the slow path
+503: headers[key] = readers[token](self, get_signature_tree(token).types[0])
__pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_readers, __pyx_v_token); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree); __pyx_t_9 = __pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_8 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_v_token) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_token); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_types); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_self), __pyx_t_8}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 503, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_self), __pyx_t_8}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 503, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_5, ((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_5, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyDict_SetItem(__pyx_v_headers, __pyx_v_key, __pyx_t_2) < 0)) __PYX_ERR(0, 503, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L5:; }
+504: return headers
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_headers); __pyx_r = __pyx_v_headers; goto __pyx_L0;
505:
+506: def _read_header(self) -> None:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_header(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { unsigned int __pyx_v_endian; unsigned int __pyx_v_protocol_version; PyObject *__pyx_v_buffer = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_header", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_header", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_buffer); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
507: """Read the header of the message."""
508: # Signature is of the header is
509: # BYTE, BYTE, BYTE, BYTE, UINT32, UINT32, ARRAY of STRUCT of (BYTE,VARIANT)
+510: self._read_to_pos(HEADER_SIGNATURE_SIZE)
__pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_to_pos(__pyx_v_self, __pyx_v_9dbus_fast_8_private_12unmarshaller_HEADER_SIGNATURE_SIZE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+511: buffer = self._buf
__pyx_t_1 = __pyx_v_self->_buf;
__Pyx_INCREF(__pyx_t_1);
__pyx_v_buffer = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+512: endian = buffer[0]
__pyx_t_2 = __Pyx_GetItemInt_ByteArray(__pyx_v_buffer, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 512, __pyx_L1_error) __pyx_v_endian = __pyx_t_2;
+513: self._message_type = buffer[1]
__pyx_t_2 = __Pyx_GetItemInt_ByteArray(__pyx_v_buffer, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 513, __pyx_L1_error) __pyx_v_self->_message_type = __pyx_t_2;
+514: self._flag = buffer[2]
__pyx_t_2 = __Pyx_GetItemInt_ByteArray(__pyx_v_buffer, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 514, __pyx_L1_error) __pyx_v_self->_flag = __pyx_t_2;
+515: protocol_version = buffer[3]
__pyx_t_2 = __Pyx_GetItemInt_ByteArray(__pyx_v_buffer, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(0, 515, __pyx_L1_error) __pyx_v_protocol_version = __pyx_t_2;
516:
+517: if protocol_version != PROTOCOL_VERSION:
__pyx_t_3 = ((__pyx_v_protocol_version != __pyx_v_9dbus_fast_8_private_12unmarshaller_PROTOCOL_VERSION) != 0); if (unlikely(__pyx_t_3)) { /* … */ }
+518: raise InvalidMessageError(
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_InvalidMessageError); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+519: f"got unknown protocol version: {protocol_version}"
__pyx_t_5 = __Pyx_PyUnicode_From_unsigned_int(__pyx_v_protocol_version, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_got_unknown_protocol_version, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 518, __pyx_L1_error)
520: )
521:
+522: if cython.compiled and (
__pyx_t_7 = (1 != 0); if (__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L5_bool_binop_done; } /* … */ if (__pyx_t_3) { /* … */ goto __pyx_L4; }
+523: (endian == LITTLE_ENDIAN and SYS_IS_LITTLE_ENDIAN)
__pyx_t_7 = ((__pyx_v_endian == __pyx_v_9dbus_fast_8_private_12unmarshaller_LITTLE_ENDIAN) != 0); if (!__pyx_t_7) { goto __pyx_L7_next_or; } else { } __pyx_t_7 = (__pyx_v_9dbus_fast_8_private_12unmarshaller_SYS_IS_LITTLE_ENDIAN != 0); if (!__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L5_bool_binop_done; } __pyx_L7_next_or:;
+524: or (endian == BIG_ENDIAN and SYS_IS_BIG_ENDIAN)
__pyx_t_7 = ((__pyx_v_endian == __pyx_v_9dbus_fast_8_private_12unmarshaller_BIG_ENDIAN) != 0); if (__pyx_t_7) { } else { __pyx_t_3 = __pyx_t_7; goto __pyx_L5_bool_binop_done; } __pyx_t_7 = (__pyx_v_9dbus_fast_8_private_12unmarshaller_SYS_IS_BIG_ENDIAN != 0); __pyx_t_3 = __pyx_t_7; __pyx_L5_bool_binop_done:;
525: ):
+526: self._is_native = 1 # pragma: no cover
__pyx_v_self->_is_native = 1;
+527: self._body_len = _cast_uint32_native(self._buf, 4) # pragma: no cover
__pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_self->_buf); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 527, __pyx_L1_error) __pyx_v_self->_body_len = __pyx_f_9dbus_fast_8_private_12unmarshaller__cast_uint32_native(__pyx_t_8, 4);
+528: self._serial = _cast_uint32_native(self._buf, 8) # pragma: no cover
__pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_self->_buf); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 528, __pyx_L1_error) __pyx_v_self->_serial = __pyx_f_9dbus_fast_8_private_12unmarshaller__cast_uint32_native(__pyx_t_8, 8);
+529: self._header_len = _cast_uint32_native(self._buf, 12) # pragma: no cover
__pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_self->_buf); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(0, 529, __pyx_L1_error) __pyx_v_self->_header_len = __pyx_f_9dbus_fast_8_private_12unmarshaller__cast_uint32_native(__pyx_t_8, 12);
+530: elif endian == LITTLE_ENDIAN:
__pyx_t_3 = ((__pyx_v_endian == __pyx_v_9dbus_fast_8_private_12unmarshaller_LITTLE_ENDIAN) != 0); if (__pyx_t_3) { /* … */ goto __pyx_L4; }
531: (
+532: self._body_len,
__pyx_t_11 = __Pyx_PyInt_As_unsigned_int(__pyx_t_4); if (unlikely((__pyx_t_11 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_12 = __Pyx_PyInt_As_unsigned_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = __Pyx_PyInt_As_unsigned_int(__pyx_t_6); if (unlikely((__pyx_t_13 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_self->_body_len = __pyx_t_11;
+533: self._serial,
__pyx_v_self->_serial = __pyx_t_12;
+534: self._header_len,
__pyx_v_self->_header_len = __pyx_t_13;
+535: ) = UNPACK_HEADER_LITTLE_ENDIAN(self._buf, 4)
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UNPACK_HEADER_LITTLE_ENDIAN); __pyx_t_4 = __pyx_v_9dbus_fast_8_private_12unmarshaller_UNPACK_HEADER_LITTLE_ENDIAN; __pyx_t_6 = NULL; __pyx_t_2 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_2 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_self->_buf, __pyx_int_4}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_self->_buf, __pyx_int_4}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_v_self->_buf); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_2, __pyx_v_self->_buf); __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_2, __pyx_int_4); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 532, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_6 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_5 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_5)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 2; __pyx_t_6 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_6)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) __PYX_ERR(0, 532, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L11_unpacking_done; __pyx_L10_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 532, __pyx_L1_error) __pyx_L11_unpacking_done:; }
+536: self._uint32_unpack = UINT32_UNPACK_LITTLE_ENDIAN
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_LITTLE_ENDIAN); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_LITTLE_ENDIAN); __Pyx_GOTREF(__pyx_v_self->_uint32_unpack); __Pyx_DECREF(__pyx_v_self->_uint32_unpack); __pyx_v_self->_uint32_unpack = __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_LITTLE_ENDIAN;
+537: self._int16_unpack = INT16_UNPACK_LITTLE_ENDIAN
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_LITTLE_ENDIAN); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_LITTLE_ENDIAN); __Pyx_GOTREF(__pyx_v_self->_int16_unpack); __Pyx_DECREF(__pyx_v_self->_int16_unpack); __pyx_v_self->_int16_unpack = __pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_LITTLE_ENDIAN;
+538: self._uint16_unpack = UINT16_UNPACK_LITTLE_ENDIAN
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_LITTLE_ENDIAN); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_LITTLE_ENDIAN); __Pyx_GOTREF(__pyx_v_self->_uint16_unpack); __Pyx_DECREF(__pyx_v_self->_uint16_unpack); __pyx_v_self->_uint16_unpack = __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_LITTLE_ENDIAN;
+539: elif endian == BIG_ENDIAN:
__pyx_t_3 = ((__pyx_v_endian == __pyx_v_9dbus_fast_8_private_12unmarshaller_BIG_ENDIAN) != 0); if (likely(__pyx_t_3)) { /* … */ goto __pyx_L4; }
+540: self._body_len, self._serial, self._header_len = UNPACK_HEADER_BIG_ENDIAN(
__pyx_t_13 = __Pyx_PyInt_As_unsigned_int(__pyx_t_6); if (unlikely((__pyx_t_13 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_12 = __Pyx_PyInt_As_unsigned_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = __Pyx_PyInt_As_unsigned_int(__pyx_t_5); if (unlikely((__pyx_t_11 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_self->_body_len = __pyx_t_13; __pyx_v_self->_serial = __pyx_t_12; __pyx_v_self->_header_len = __pyx_t_11;
+541: self._buf, 4
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UNPACK_HEADER_BIG_ENDIAN); __pyx_t_6 = __pyx_v_9dbus_fast_8_private_12unmarshaller_UNPACK_HEADER_BIG_ENDIAN; __pyx_t_5 = NULL; __pyx_t_2 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_2 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_self->_buf, __pyx_int_4}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_self->_buf, __pyx_int_4}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(__pyx_v_self->_buf); __Pyx_GIVEREF(__pyx_v_self->_buf); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_2, __pyx_v_self->_buf); __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_2, __pyx_int_4); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 540, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_6 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_5 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; index = 0; __pyx_t_6 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_6)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); index = 1; __pyx_t_4 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 2; __pyx_t_5 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_5)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) __PYX_ERR(0, 540, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L13_unpacking_done; __pyx_L12_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 540, __pyx_L1_error) __pyx_L13_unpacking_done:; }
542: )
+543: self._uint32_unpack = UINT32_UNPACK_BIG_ENDIAN
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_BIG_ENDIAN); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_BIG_ENDIAN); __Pyx_GOTREF(__pyx_v_self->_uint32_unpack); __Pyx_DECREF(__pyx_v_self->_uint32_unpack); __pyx_v_self->_uint32_unpack = __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT32_UNPACK_BIG_ENDIAN;
+544: self._int16_unpack = INT16_UNPACK_BIG_ENDIAN
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_BIG_ENDIAN); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_BIG_ENDIAN); __Pyx_GOTREF(__pyx_v_self->_int16_unpack); __Pyx_DECREF(__pyx_v_self->_int16_unpack); __pyx_v_self->_int16_unpack = __pyx_v_9dbus_fast_8_private_12unmarshaller_INT16_UNPACK_BIG_ENDIAN;
+545: self._uint16_unpack = UINT16_UNPACK_BIG_ENDIAN
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_BIG_ENDIAN); __Pyx_GIVEREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_BIG_ENDIAN); __Pyx_GOTREF(__pyx_v_self->_uint16_unpack); __Pyx_DECREF(__pyx_v_self->_uint16_unpack); __pyx_v_self->_uint16_unpack = __pyx_v_9dbus_fast_8_private_12unmarshaller_UINT16_UNPACK_BIG_ENDIAN;
546: else:
+547: raise InvalidMessageError(
/*else*/ { __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_InvalidMessageError); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+548: f"Expecting endianness as the first byte, got {endian} from {buffer}"
__pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = 0; __pyx_t_15 = 127; __Pyx_INCREF(__pyx_kp_u_Expecting_endianness_as_the_firs); __pyx_t_14 += 44; __Pyx_GIVEREF(__pyx_kp_u_Expecting_endianness_as_the_firs); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_Expecting_endianness_as_the_firs); __pyx_t_6 = __Pyx_PyUnicode_From_unsigned_int(__pyx_v_endian, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6); __pyx_t_6 = 0; __Pyx_INCREF(__pyx_kp_u_from); __pyx_t_14 += 6; __Pyx_GIVEREF(__pyx_kp_u_from); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u_from); __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_v_buffer, __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_15 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_15) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_15; __pyx_t_14 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_4, 4, __pyx_t_14, __pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 547, __pyx_L1_error) } __pyx_L4:;
549: )
550:
+551: self._msg_len = (
__pyx_v_self->_msg_len = ((__pyx_v_self->_header_len + ((-__pyx_v_self->_header_len) & 7)) + __pyx_v_self->_body_len);
552: self._header_len + (-self._header_len & 7) + self._body_len
553: ) # align 8
+554: self._readers = self._readers_by_type[endian]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_readers_by_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_endian, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_self->_readers); __Pyx_DECREF(__pyx_v_self->_readers); __pyx_v_self->_readers = __pyx_t_5; __pyx_t_5 = 0;
555:
+556: def _read_body(self) -> None:
static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller__read_body(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { PyObject *__pyx_v_body = 0; PyObject *__pyx_v_header_fields = NULL; PyObject *__pyx_v_signature = NULL; PyObject *__pyx_v_tree = NULL; PyObject *__pyx_8genexpr1__pyx_v_t = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_read_body", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller._read_body", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_body); __Pyx_XDECREF(__pyx_v_header_fields); __Pyx_XDECREF(__pyx_v_signature); __Pyx_XDECREF(__pyx_v_tree); __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_t); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
557: """Read the body of the message."""
+558: self._read_to_pos(HEADER_SIGNATURE_SIZE + self._msg_len)
__pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_to_pos(__pyx_v_self, (__pyx_v_9dbus_fast_8_private_12unmarshaller_HEADER_SIGNATURE_SIZE + __pyx_v_self->_msg_len)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+559: self._pos = HEADER_ARRAY_OF_STRUCT_SIGNATURE_POSITION
__pyx_v_self->_pos = __pyx_v_9dbus_fast_8_private_12unmarshaller_HEADER_ARRAY_OF_STRUCT_SIGNATURE_POSITION;
+560: header_fields = self.header_fields(self._header_len)
__pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->header_fields(__pyx_v_self, __pyx_v_self->_header_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_header_fields = __pyx_t_1; __pyx_t_1 = 0;
+561: self._pos += -self._pos & 7 # align 8
__pyx_v_self->_pos = (__pyx_v_self->_pos + ((-__pyx_v_self->_pos) & 7));
+562: header_fields.pop("unix_fds", None) # defined by self._unix_fds
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_header_fields, __pyx_n_s_pop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__5 = PyTuple_Pack(2, __pyx_n_u_unix_fds, Py_None); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 562, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5);
+563: signature = header_fields.pop("signature", "")
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_header_fields, __pyx_n_s_pop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_signature = __pyx_t_1; __pyx_t_1 = 0; /* … */ __pyx_tuple__6 = PyTuple_Pack(2, __pyx_n_u_signature, __pyx_kp_u__3); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 563, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6);
+564: if not self._body_len:
__pyx_t_3 = ((!(__pyx_v_self->_body_len != 0)) != 0); if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+565: tree = SIGNATURE_TREE_EMPTY
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_EMPTY);
__pyx_v_tree = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_EMPTY;
+566: body = []
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_body = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+567: elif signature == "s":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_n_u_s, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 567, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+568: tree = SIGNATURE_TREE_S
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_S);
__pyx_v_tree = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_S;
+569: body = [self._read_string_unpack()]
__pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_v_body = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+570: elif signature == "sa{sv}as":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_kp_u_sa_sv_as, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 570, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+571: tree = SIGNATURE_TREE_SA_SV_AS
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS);
__pyx_v_tree = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS;
+572: body = [
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_v_body = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+573: self._read_string_unpack(),
__pyx_t_2 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2);
+574: self._read_array(SIGNATURE_TREE_SA_SV_AS_TYPES_1),
__pyx_t_1 = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS_TYPES_1; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+575: self._read_array(SIGNATURE_TREE_SA_SV_AS_TYPES_2),
__pyx_t_1 = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_SA_SV_AS_TYPES_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
576: ]
+577: elif signature == "oa{sa{sv}}":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_kp_u_oa_sa_sv, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 577, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+578: tree = SIGNATURE_TREE_OA_SA_SV
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OA_SA_SV);
__pyx_v_tree = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OA_SA_SV;
+579: body = [
__pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_v_body = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0;
+580: self._read_string_unpack(),
__pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+581: self._read_array(SIGNATURE_TREE_OA_SA_SV_TYPES_1),
__pyx_t_5 = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OA_SA_SV_TYPES_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
582: ]
+583: elif signature == "oas":
__pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_signature, __pyx_n_u_oas, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 583, __pyx_L1_error) if (__pyx_t_3) { /* … */ goto __pyx_L3; }
+584: tree = SIGNATURE_TREE_OAS
__Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OAS);
__pyx_v_tree = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OAS;
+585: body = [
__pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_v_body = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
+586: self._read_string_unpack(),
__pyx_t_5 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_string_unpack(__pyx_v_self); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+587: self._read_array(SIGNATURE_TREE_OAS_TYPES_1),
__pyx_t_4 = __pyx_v_9dbus_fast_8_private_12unmarshaller_SIGNATURE_TREE_OAS_TYPES_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_array(__pyx_v_self, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
588: ]
589: else:
+590: tree = get_signature_tree(signature)
/*else*/ { __Pyx_INCREF(__pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree); __pyx_t_1 = __pyx_v_9dbus_fast_8_private_12unmarshaller_get_signature_tree; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v_signature) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_signature); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_tree = __pyx_t_4; __pyx_t_4 = 0;
+591: body = [self._readers[t.token](self, t) for t in tree.types]
{ /* enter inner scope */ __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_tree, __pyx_n_s_types); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 591, __pyx_L6_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 591, __pyx_L6_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 591, __pyx_L6_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 591, __pyx_L6_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_t, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr1__pyx_v_t, __pyx_n_s_token); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_self->_readers, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_self), __pyx_8genexpr1__pyx_v_t}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_self), __pyx_8genexpr1__pyx_v_t}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(__pyx_8genexpr1__pyx_v_t); __Pyx_GIVEREF(__pyx_8genexpr1__pyx_v_t); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_8genexpr1__pyx_v_t); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 591, __pyx_L6_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_t); __pyx_8genexpr1__pyx_v_t = 0; goto __pyx_L9_exit_scope; __pyx_L6_error:; __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_t); __pyx_8genexpr1__pyx_v_t = 0; goto __pyx_L1_error; __pyx_L9_exit_scope:; } /* exit inner scope */ __pyx_v_body = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; } __pyx_L3:;
592:
+593: self._message = Message(
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_9dbus_fast_8_private_12unmarshaller_Message, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GIVEREF(__pyx_t_5); __Pyx_GOTREF(__pyx_v_self->_message); __Pyx_DECREF(__pyx_v_self->_message); __pyx_v_self->_message = __pyx_t_5; __pyx_t_5 = 0;
+594: message_type=MESSAGE_TYPE_MAP[self._message_type],
__pyx_t_5 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_9dbus_fast_8_private_12unmarshaller_MESSAGE_TYPE_MAP, __pyx_v_self->_message_type, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_message_type, __pyx_t_1) < 0) __PYX_ERR(0, 594, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+595: flags=MESSAGE_FLAG_MAP[self._flag],
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_9dbus_fast_8_private_12unmarshaller_MESSAGE_FLAG_MAP, __pyx_v_self->_flag, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_flags, __pyx_t_1) < 0) __PYX_ERR(0, 594, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+596: unix_fds=self._unix_fds,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_unix_fds, __pyx_v_self->_unix_fds) < 0) __PYX_ERR(0, 594, __pyx_L1_error)
+597: signature=tree,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_signature, __pyx_v_tree) < 0) __PYX_ERR(0, 594, __pyx_L1_error)
+598: body=body,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_body, __pyx_v_body) < 0) __PYX_ERR(0, 594, __pyx_L1_error)
+599: serial=self._serial,
__pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->_serial); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_serial, __pyx_t_1) < 0) __PYX_ERR(0, 594, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
600: # The D-Bus implementation already validates the message,
601: # so we don't need to do it again.
+602: validate=False,
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_validate, Py_False) < 0) __PYX_ERR(0, 594, __pyx_L1_error) __pyx_t_4 = __pyx_t_5; __pyx_t_5 = 0;
+603: **header_fields,
if (unlikely(__pyx_v_header_fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 603, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_4, __pyx_v_header_fields) < 0) __PYX_ERR(0, 603, __pyx_L1_error)
604: )
605:
+606: def unmarshall(self) -> Optional[Message]:
static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_25unmarshall(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_unmarshall(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self, int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("unmarshall", 0); /* Check if called by wrapper */ if (unlikely(__pyx_skip_dispatch)) ; /* Check if overridden in Python */ else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) { #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) { PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); #endif __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_unmarshall); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_25unmarshall)) { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; } #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self)); __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self)); if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) { __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT; } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS } #endif } /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.unmarshall", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_25unmarshall(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static char __pyx_doc_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_24unmarshall[] = "Unmarshall the message.\n\n The underlying read function will raise MarshallerStreamEndError\n if there are not enough bytes in the buffer. This allows unmarshall\n to be resumed when more data comes in over the wire.\n "; static PyMethodDef __pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_25unmarshall = {"unmarshall", (PyCFunction)__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_25unmarshall, METH_NOARGS, __pyx_doc_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_24unmarshall}; static PyObject *__pyx_pw_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_25unmarshall(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("unmarshall (wrapper)", 0); __pyx_r = __pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_24unmarshall(((struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_24unmarshall(struct __pyx_obj_9dbus_fast_8_private_12unmarshaller_Unmarshaller *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("unmarshall", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_unmarshall(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.unmarshall", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__61 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__61); __Pyx_GIVEREF(__pyx_tuple__61); /* … */ __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_25unmarshall, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Unmarshaller_unmarshall, NULL, __pyx_n_s_dbus_fast__private_unmarshaller, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_unmarshall, __pyx_t_5) < 0) __PYX_ERR(0, 606, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller); __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_dbus_fast__private_unmarshal, __pyx_n_s_unmarshall, 606, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 606, __pyx_L1_error)
607: """Unmarshall the message.
608:
609: The underlying read function will raise MarshallerStreamEndError
610: if there are not enough bytes in the buffer. This allows unmarshall
611: to be resumed when more data comes in over the wire.
612: """
+613: try:
{ /*try:*/ { /* … */ } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L1_error; __pyx_L6_except_return:; __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L0; __pyx_L8_try_end:; }
+614: if not self._msg_len:
__pyx_t_8 = ((!(__pyx_v_self->_msg_len != 0)) != 0); if (__pyx_t_8) { /* … */ }
+615: self._read_header()
__pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_header(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 615, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+616: self._read_body()
__pyx_t_1 = ((struct __pyx_vtabstruct_9dbus_fast_8_private_12unmarshaller_Unmarshaller *)__pyx_v_self->__pyx_vtab)->_read_body(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+617: except MarshallerStreamEndError:
__pyx_t_9 = __Pyx_PyErr_ExceptionMatches(((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_MarshallerStreamEndError)); if (__pyx_t_9) { __Pyx_AddTraceback("dbus_fast._private.unmarshaller.Unmarshaller.unmarshall", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3) < 0) __PYX_ERR(0, 617, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_3);
+618: return None
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L6_except_return; } goto __pyx_L5_except_error; __pyx_L5_except_error:;
+619: return self._message
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_message); __pyx_r = __pyx_v_self->_message; goto __pyx_L0;
620:
621: _complex_parsers_unpack: Dict[
622: str, Callable[["Unmarshaller", SignatureType], Any]
623: ] = {
+624: "b": read_boolean,
__pyx_t_5 = __Pyx_PyDict_NewPresized(12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_boolean); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_b, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+625: "o": read_string_unpack,
__Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_string_unpack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_o, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+626: "s": read_string_unpack,
__Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_string_unpack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_s, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+627: "g": read_signature,
__Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_signature); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_g, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+628: "a": read_array,
__Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_a, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+629: "(": read_struct,
__Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_struct); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_kp_u__63, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+630: "{": read_dict_entry,
__Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_dict_entry); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_kp_u__4, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+631: "v": read_variant,
__Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_variant); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_v, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+632: "h": read_uint32_unpack,
__Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_uint32_unpack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_n_u_h, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+633: UINT32_DBUS_TYPE: read_uint32_unpack,
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_UINT32_DBUS_TYPE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetNameInClass(__pyx_t_2, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_uint32_unpack); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_5, __pyx_t_1, __pyx_t_2) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+634: INT16_DBUS_TYPE: read_int16_unpack,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INT16_DBUS_TYPE); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_int16_unpack); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_5, __pyx_t_2, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+635: UINT16_DBUS_TYPE: read_uint16_unpack,
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_UINT16_DBUS_TYPE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetNameInClass(__pyx_t_2, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_read_uint16_unpack); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_5, __pyx_t_1, __pyx_t_2) < 0) __PYX_ERR(0, 624, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_complex_parsers_unpack, __pyx_t_5) < 0) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller);
636: }
637:
+638: _ctype_by_endian: Dict[int, Dict[str, READER_TYPE]] = {
{ /* enter inner scope */ __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 638, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_5);
+639: endian: build_simple_parsers(endian) for endian in (LITTLE_ENDIAN, BIG_ENDIAN)
__pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_LITTLE_ENDIAN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 639, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_BIG_ENDIAN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 639, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 639, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1); __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; for (;;) { if (__pyx_t_12 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 639, __pyx_L10_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 639, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_endian, __pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_build_simple_parsers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 639, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_8genexpr2__pyx_v_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_endian) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_8genexpr2__pyx_v_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_endian); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 639, __pyx_L10_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyDict_SetItem(__pyx_t_5, (PyObject*)__pyx_8genexpr2__pyx_v_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_endian, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 639, __pyx_L10_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_endian); __pyx_8genexpr2__pyx_v_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_endian = 0; goto __pyx_L13_exit_scope; __pyx_L10_error:; __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_endian); __pyx_8genexpr2__pyx_v_9dbus_fast_8_private_12unmarshaller_12Unmarshaller_endian = 0; goto __pyx_L1_error; __pyx_L13_exit_scope:; } /* exit inner scope */ if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_ctype_by_endian, __pyx_t_5) < 0) __PYX_ERR(0, 638, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller);
640: }
641:
642: _readers_by_type: Dict[int, Dict[str, READER_TYPE]] = {
+643: LITTLE_ENDIAN: {
__pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_LITTLE_ENDIAN); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+644: **_ctype_by_endian[LITTLE_ENDIAN],
__Pyx_GetNameInClass(__pyx_t_2, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_ctype_by_endian); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_9dbus_fast_8_private_12unmarshaller_LITTLE_ENDIAN, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__pyx_t_8 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 644, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_8))) { __pyx_t_6 = PyDict_Copy(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; }
+645: **_complex_parsers_unpack,
__Pyx_GetNameInClass(__pyx_t_8, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_complex_parsers_unpack); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely(__pyx_t_8 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 645, __pyx_L1_error) } if (unlikely(PyDict_Update(__pyx_t_6, __pyx_t_8) < 0)) { if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseMappingExpectedError(__pyx_t_8); __PYX_ERR(0, 645, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_t_1, __pyx_t_6) < 0) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
646: },
+647: BIG_ENDIAN: {
__pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_9dbus_fast_8_private_12unmarshaller_BIG_ENDIAN); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6);
+648: **_ctype_by_endian[BIG_ENDIAN],
__Pyx_GetNameInClass(__pyx_t_8, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_ctype_by_endian); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_9dbus_fast_8_private_12unmarshaller_BIG_ENDIAN, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 648, __pyx_L1_error) } if (likely(PyDict_CheckExact(__pyx_t_2))) { __pyx_t_1 = PyDict_Copy(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; }
+649: **_complex_parsers_unpack,
__Pyx_GetNameInClass(__pyx_t_2, (PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller, __pyx_n_s_complex_parsers_unpack); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__pyx_t_2 == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 649, __pyx_L1_error) } if (unlikely(PyDict_Update(__pyx_t_1, __pyx_t_2) < 0)) { if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseMappingExpectedError(__pyx_t_2); __PYX_ERR(0, 649, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_t_6, __pyx_t_1) < 0) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem((PyObject *)__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller->tp_dict, __pyx_n_s_readers_by_type, __pyx_t_5) < 0) __PYX_ERR(0, 642, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; PyType_Modified(__pyx_ptype_9dbus_fast_8_private_12unmarshaller_Unmarshaller);
650: },
651: }