fix buffer code and testcases to silent GCC warning
authorLisandro Dalcin <dalcinl@gmail.com>
Wed, 10 Mar 2010 00:28:44 +0000 (21:28 -0300)
committerLisandro Dalcin <dalcinl@gmail.com>
Wed, 10 Mar 2010 00:28:44 +0000 (21:28 -0300)
Cython/Compiler/Buffer.py
Cython/Compiler/ExprNodes.py
tests/run/numpy_bufacc_T155.pyx
tests/run/numpy_common.pxi [new file with mode: 0644]
tests/run/numpy_test.pyx

index d7d66e8277f9f871a4cba9d620fd2028822ed49b..bf6eef8b9083c5459492918881bb0a74bd560345 100644 (file)
@@ -723,8 +723,8 @@ typedef struct {
 } __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;
@@ -1131,7 +1131,7 @@ static CYTHON_INLINE void __Pyx_ZeroBuffer(Py_buffer* buf) {
   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;
index 209c1a807f7a0e13555cda89fce8fd4c7f4f907d..bec609cde55b7340fc3e17504e74b541f27045b1 100755 (executable)
@@ -3440,8 +3440,6 @@ class SequenceNode(ExprNode):
         # 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:
@@ -3477,6 +3475,8 @@ class SequenceNode(ExprNode):
                         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" % (
index 7d0bb6b03ef13a1ff935d897d5a771b01fc2e6e2..38549a028090ec1a07659d82293f4e1892d252af 100644 (file)
@@ -13,3 +13,5 @@ def myfunc():
     for i from 0 <= i < A.shape[0]:
         A[i, :] /= 2
     return A[0,0]
+
+include "numpy_common.pxi"
diff --git a/tests/run/numpy_common.pxi b/tests/run/numpy_common.pxi
new file mode 100644 (file)
index 0000000..ad6e7b0
--- /dev/null
@@ -0,0 +1,7 @@
+cdef extern from *:
+   void import_array()
+   void import_umath()
+
+if 0: 
+    import_array()
+    import_umath()
index 187737d074c2ff1553a1dc3c0d6307848d8ba030..2f9801d9be463d7ebe6a6a885c4dfec180b74f37 100644 (file)
@@ -428,3 +428,5 @@ def test_point_record():
         test[i].x = i
         test[i].y = -i
     print repr(test).replace('<', '!').replace('>', '!')
+
+include "numpy_common.pxi"