} __Pyx_BufFmt_StackElem;
+static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info);
-static int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack);
""", impl="""
static CYTHON_INLINE int __Pyx_IsLittleEndian(void) {
unsigned int n = 1;
buf->suboffsets = __Pyx_minusones;
}
-static int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack) {
+static CYTHON_INLINE int __Pyx_GetBufferAndValidate(Py_buffer* buf, PyObject* obj, __Pyx_TypeInfo* dtype, int flags, int nd, int cast, __Pyx_BufFmt_StackElem* stack) {
if (obj == Py_None) {
__Pyx_ZeroBuffer(buf);
return 0;
# allocates the temps in a rather hacky way -- the assignment
# is evaluated twice, within each if-block.
- code.globalstate.use_utility_code(unpacking_utility_code)
-
if rhs.type is tuple_type:
tuple_check = "likely(%s != Py_None)"
else:
rhs.py_result(), len(self.args)))
code.putln(code.error_goto(self.pos))
else:
+ code.globalstate.use_utility_code(unpacking_utility_code)
+
self.iterator.allocate(code)
code.putln(
"%s = PyObject_GetIter(%s); %s" % (