X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fpyvalues.c;h=44176014fc27dc68de218f00acf6c2e8bf8560d7;hb=2d51f3eaee79b36f9ec51381075b1f486b7921b8;hp=78e6cf9d450413ed242fb73e6126a09f4dd86057;hpb=ef4a3db895a0aba7107c0f1c6c2ef2a7f128aaf8;p=collectd.git diff --git a/src/pyvalues.c b/src/pyvalues.c index 78e6cf9d..44176014 100644 --- a/src/pyvalues.c +++ b/src/pyvalues.c @@ -502,9 +502,9 @@ static meta_data_t *cpy_build_meta(PyObject *meta) { } static PyObject *Values_dispatch(Values *self, PyObject *args, PyObject *kwds) { - int i, ret; + int ret; const data_set_t *ds; - int size; + size_t size, i; value_t *value; value_list_t value_list = VALUE_LIST_INIT; PyObject *values = self->values, *meta = self->meta; @@ -542,15 +542,15 @@ static PyObject *Values_dispatch(Values *self, PyObject *args, PyObject *kwds) { PyErr_Format(PyExc_TypeError, "meta must be a dict"); return NULL; } - size = (int) PySequence_Length(values); + size = (size_t) PySequence_Length(values); if (size != ds->ds_num) { - PyErr_Format(PyExc_RuntimeError, "type %s needs %d values, got %i", value_list.type, ds->ds_num, size); + PyErr_Format(PyExc_RuntimeError, "type %s needs %zu values, got %zu", value_list.type, ds->ds_num, size); return NULL; } - value = malloc(size * sizeof(*value)); + value = calloc(size, sizeof(*value)); for (i = 0; i < size; ++i) { PyObject *item, *num; - item = PySequence_Fast_GET_ITEM(values, i); /* Borrowed reference. */ + item = PySequence_Fast_GET_ITEM(values, (int) i); /* Borrowed reference. */ if (ds->ds->type == DS_TYPE_COUNTER) { num = PyNumber_Long(item); /* New reference. */ if (num != NULL) { @@ -611,9 +611,9 @@ static PyObject *Values_dispatch(Values *self, PyObject *args, PyObject *kwds) { } static PyObject *Values_write(Values *self, PyObject *args, PyObject *kwds) { - int i, ret; + int ret; const data_set_t *ds; - int size; + size_t size, i; value_t *value; value_list_t value_list = VALUE_LIST_INIT; PyObject *values = self->values, *meta = self->meta; @@ -646,12 +646,12 @@ static PyObject *Values_write(Values *self, PyObject *args, PyObject *kwds) { PyErr_Format(PyExc_TypeError, "values must be list or tuple"); return NULL; } - size = (int) PySequence_Length(values); + size = (size_t) PySequence_Length(values); if (size != ds->ds_num) { - PyErr_Format(PyExc_RuntimeError, "type %s needs %d values, got %i", value_list.type, ds->ds_num, size); + PyErr_Format(PyExc_RuntimeError, "type %s needs %zu values, got %zu", value_list.type, ds->ds_num, size); return NULL; } - value = malloc(size * sizeof(*value)); + value = calloc(size, sizeof(*value)); for (i = 0; i < size; ++i) { PyObject *item, *num; item = PySequence_Fast_GET_ITEM(values, i); /* Borrowed reference. */