Set stricter warning rules for gcc

This commit is contained in:
Andrey Kamaev
2012-06-07 17:21:29 +00:00
parent 0395f7c63f
commit 49a1ba6038
241 changed files with 9054 additions and 8947 deletions

View File

@@ -35,12 +35,12 @@ static PyObject* opencv_error = 0;
static int failmsg(const char *fmt, ...)
{
char str[1000];
va_list ap;
va_start(ap, fmt);
vsnprintf(str, sizeof(str), fmt, ap);
va_end(ap);
PyErr_SetString(PyExc_TypeError, str);
return 0;
}
@@ -49,7 +49,7 @@ class PyAllowThreads
{
public:
PyAllowThreads() : _state(PyEval_SaveThread()) {}
~PyAllowThreads()
~PyAllowThreads()
{
PyEval_RestoreThread(_state);
}
@@ -61,7 +61,7 @@ class PyEnsureGIL
{
public:
PyEnsureGIL() : _state(PyGILState_Ensure()) {}
~PyEnsureGIL()
~PyEnsureGIL()
{
PyGILState_Release(_state);
}
@@ -147,7 +147,7 @@ class NumpyAllocator : public MatAllocator
public:
NumpyAllocator() {}
~NumpyAllocator() {}
void allocate(int dims, const int* sizes, int type, int*& refcount,
uchar*& datastart, uchar*& data, size_t* step)
{
@@ -180,7 +180,7 @@ public:
step[i] = (size_t)_strides[i];
datastart = data = (uchar*)PyArray_DATA(o);
}
void deallocate(int* refcount, uchar* datastart, uchar* data)
{
PyEnsureGIL gil;
@@ -193,7 +193,7 @@ public:
};
NumpyAllocator g_numpyAllocator;
enum { ARG_NONE = 0, ARG_MAT = 1, ARG_SCALAR = 2 };
static int pyopencv_to(const PyObject* o, Mat& m, const char* name = "<unknown>", bool allowND=true)
@@ -204,72 +204,72 @@ static int pyopencv_to(const PyObject* o, Mat& m, const char* name = "<unknown>"
m.allocator = &g_numpyAllocator;
return true;
}
if( !PyArray_Check(o) )
{
failmsg("%s is not a numpy array", name);
return false;
}
int typenum = PyArray_TYPE(o);
int type = typenum == NPY_UBYTE ? CV_8U : typenum == NPY_BYTE ? CV_8S :
typenum == NPY_USHORT ? CV_16U : typenum == NPY_SHORT ? CV_16S :
typenum == NPY_USHORT ? CV_16U : typenum == NPY_SHORT ? CV_16S :
typenum == NPY_INT || typenum == NPY_LONG ? CV_32S :
typenum == NPY_FLOAT ? CV_32F :
typenum == NPY_DOUBLE ? CV_64F : -1;
if( type < 0 )
{
failmsg("%s data type = %d is not supported", name, typenum);
return false;
}
int ndims = PyArray_NDIM(o);
if(ndims >= CV_MAX_DIM)
{
failmsg("%s dimensionality (=%d) is too high", name, ndims);
return false;
}
int size[CV_MAX_DIM+1];
size_t step[CV_MAX_DIM+1], elemsize = CV_ELEM_SIZE1(type);
const npy_intp* _sizes = PyArray_DIMS(o);
const npy_intp* _strides = PyArray_STRIDES(o);
bool transposed = false;
for(int i = 0; i < ndims; i++)
{
size[i] = (int)_sizes[i];
step[i] = (size_t)_strides[i];
}
if( ndims == 0 || step[ndims-1] > elemsize ) {
size[ndims] = 1;
step[ndims] = elemsize;
ndims++;
}
if( ndims >= 2 && step[0] < step[1] )
{
std::swap(size[0], size[1]);
std::swap(step[0], step[1]);
transposed = true;
}
if( ndims == 3 && size[2] <= CV_CN_MAX && step[1] == elemsize*size[2] )
{
ndims--;
type |= CV_MAKETYPE(0, size[2]);
}
if( ndims > 2 && !allowND )
{
failmsg("%s has more than 2 dimensions", name);
return false;
}
m = Mat(ndims, size, type, PyArray_DATA(o), step);
if( m.data )
{
m.refcount = refcountFromPyObject(o);
@@ -277,7 +277,7 @@ static int pyopencv_to(const PyObject* o, Mat& m, const char* name = "<unknown>"
// (since Mat destructor will decrement the reference counter)
};
m.allocator = &g_numpyAllocator;
if( transposed )
{
Mat tmp;
@@ -503,12 +503,12 @@ static inline bool pyopencv_to(PyObject* obj, CvSlice& r, const char* name = "<u
}
return PyArg_ParseTuple(obj, "ii", &r.start_index, &r.end_index) > 0;
}
static inline PyObject* pyopencv_from(const CvSlice& r)
{
return Py_BuildValue("(ii)", r.start_index, r.end_index);
}
}
static inline bool pyopencv_to(PyObject* obj, Point& p, const char* name = "<unknown>")
{
if(!obj || obj == Py_None)
@@ -584,18 +584,18 @@ template<typename _Tp> struct pyopencvVecConverter
return false;
int i, j, n = (int)PySequence_Fast_GET_SIZE(seq);
value.resize(n);
int type = DataType<_Tp>::type;
int depth = CV_MAT_DEPTH(type), channels = CV_MAT_CN(type);
PyObject** items = PySequence_Fast_ITEMS(seq);
for( i = 0; i < n; i++ )
{
PyObject* item = items[i];
PyObject* seq_i = 0;
PyObject** items_i = &item;
_Cp* data = (_Cp*)&value[i];
if( channels == 2 && PyComplex_CheckExact(item) )
{
Py_complex c = PyComplex_AsCComplex(obj);
@@ -619,7 +619,7 @@ template<typename _Tp> struct pyopencvVecConverter
break;
continue;
}
seq_i = PySequence_Fast(item, name);
if( !seq_i || (int)PySequence_Fast_GET_SIZE(seq_i) != channels )
{
@@ -628,7 +628,7 @@ template<typename _Tp> struct pyopencvVecConverter
}
items_i = PySequence_Fast_ITEMS(seq_i);
}
for( j = 0; j < channels; j++ )
{
PyObject* item_ij = items_i[j];
@@ -656,7 +656,7 @@ template<typename _Tp> struct pyopencvVecConverter
Py_DECREF(seq);
return i == n;
}
static PyObject* from(const vector<_Tp>& value)
{
if(value.empty())
@@ -691,9 +691,9 @@ template<typename _Tp> static inline bool pyopencv_to_generic_vec(PyObject* obj,
return false;
int i, n = (int)PySequence_Fast_GET_SIZE(seq);
value.resize(n);
PyObject** items = PySequence_Fast_ITEMS(seq);
for( i = 0; i < n; i++ )
{
PyObject* item = items[i];
@@ -709,7 +709,7 @@ template<typename _Tp> static inline PyObject* pyopencv_from_generic_vec(const v
int i, n = (int)value.size();
PyObject* seq = PyList_New(n);
for( i = 0; i < n; i++ )
{
{
PyObject* item = pyopencv_from(value[i]);
if(!item)
break;
@@ -730,7 +730,7 @@ template<typename _Tp> struct pyopencvVecConverter<vector<_Tp> >
{
return pyopencv_to_generic_vec(obj, value, name);
}
static PyObject* from(const vector<vector<_Tp> >& value)
{
return pyopencv_from_generic_vec(value);
@@ -743,7 +743,7 @@ template<> struct pyopencvVecConverter<Mat>
{
return pyopencv_to_generic_vec(obj, value, name);
}
static PyObject* from(const vector<Mat>& value)
{
return pyopencv_from_generic_vec(value);
@@ -756,7 +756,7 @@ template<> struct pyopencvVecConverter<KeyPoint>
{
return pyopencv_to_generic_vec(obj, value, name);
}
static PyObject* from(const vector<KeyPoint>& value)
{
return pyopencv_from_generic_vec(value);
@@ -769,7 +769,7 @@ template<> struct pyopencvVecConverter<DMatch>
{
return pyopencv_to_generic_vec(obj, value, name);
}
static PyObject* from(const vector<DMatch>& value)
{
return pyopencv_from_generic_vec(value);
@@ -782,7 +782,7 @@ template<> struct pyopencvVecConverter<string>
{
return pyopencv_to_generic_vec(obj, value, name);
}
static PyObject* from(const vector<string>& value)
{
return pyopencv_from_generic_vec(value);
@@ -850,7 +850,7 @@ static bool pyopencv_to(PyObject *o, cv::flann::IndexParams& p, const char *name
bool ok = false;
PyObject* keys = PyObject_CallMethod(o,(char*)"keys",0);
PyObject* values = PyObject_CallMethod(o,(char*)"values",0);
if( keys && values )
{
int i, n = (int)PyList_GET_SIZE(keys);
@@ -886,7 +886,7 @@ static bool pyopencv_to(PyObject *o, cv::flann::IndexParams& p, const char *name
}
ok = i == n && !PyErr_Occurred();
}
Py_XDECREF(keys);
Py_XDECREF(values);
return ok;
@@ -914,10 +914,10 @@ static void OnMouse(int event, int x, int y, int flags, void* param)
{
PyGILState_STATE gstate;
gstate = PyGILState_Ensure();
PyObject *o = (PyObject*)param;
PyObject *args = Py_BuildValue("iiiiO", event, x, y, flags, PyTuple_GetItem(o, 1));
PyObject *r = PyObject_Call(PyTuple_GetItem(o, 0), args, NULL);
if (r == NULL)
PyErr_Print();
@@ -933,7 +933,7 @@ static PyObject *pycvSetMouseCallback(PyObject *self, PyObject *args, PyObject *
char* name;
PyObject *on_mouse;
PyObject *param = NULL;
if (!PyArg_ParseTupleAndKeywords(args, kw, "sO|O", (char**)keywords, &name, &on_mouse, &param))
return NULL;
if (!PyCallable_Check(on_mouse)) {
@@ -947,11 +947,11 @@ static PyObject *pycvSetMouseCallback(PyObject *self, PyObject *args, PyObject *
Py_RETURN_NONE;
}
void OnChange(int pos, void *param)
static void OnChange(int pos, void *param)
{
PyGILState_STATE gstate;
gstate = PyGILState_Ensure();
PyObject *o = (PyObject*)param;
PyObject *args = Py_BuildValue("(i)", pos);
PyObject *r = PyObject_Call(PyTuple_GetItem(o, 0), args, NULL);
@@ -968,7 +968,7 @@ static PyObject *pycvCreateTrackbar(PyObject *self, PyObject *args)
char* window_name;
int *value = new int;
int count;
if (!PyArg_ParseTuple(args, "ssiiO", &trackbar_name, &window_name, value, &count, &on_change))
return NULL;
if (!PyCallable_Check(on_change)) {
@@ -1011,13 +1011,14 @@ extern "C"
#if defined WIN32 || defined _WIN32
__declspec(dllexport)
#endif
void initcv2();
void initcv2()
{
#if PYTHON_USE_NUMPY
import_array();
#endif
#if PYTHON_USE_NUMPY
#include "pyopencv_generated_type_reg.h"
#endif
@@ -1029,10 +1030,10 @@ void initcv2()
opencv_error = PyErr_NewException((char*)MODULESTR".error", NULL, NULL);
PyDict_SetItemString(d, "error", opencv_error);
PyObject* cv_m = init_cv();
PyDict_SetItemString(d, "cv", cv_m);
PyDict_SetItemString(d, "cv", cv_m);
#define PUBLISH(I) PyDict_SetItemString(d, #I, PyInt_FromLong(I))
#define PUBLISHU(I) PyDict_SetItemString(d, #I, PyLong_FromUnsignedLong(I))