Changeset 3194dca


Ignore:
Timestamp:
Dec 10, 2013, 11:58:59 PM (6 years ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink, feature/constantq, feature/pitchshift, feature/pydocstrings, feature/timestretch, master, pitchshift, sampler, timestretch, yinfft+
Children:
b235c0e
Parents:
906c0a2
Message:

ext/aubioproxy.c: improve sizes checks, cast to uint_t

Signed-off-by: Paul Brossier <piem@piem.org>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • python/ext/aubioproxy.c

    r906c0a2 r3194dca  
    3636    // no need to really allocate fvec, just its struct member
    3737    vec = (fvec_t *)malloc(sizeof(fvec_t));
    38     vec->length = PyArray_SIZE ((PyArrayObject *)array);
     38    long length = PyArray_SIZE ((PyArrayObject *)array);
     39    if (length > 0) {
     40      vec->length = (uint_t)length;
     41    } else {
     42      PyErr_SetString (PyExc_ValueError, "input array size should be greater than 0");
     43      goto fail;
     44    }
    3945    vec->data = (smpl_t *) PyArray_GETPTR1 ((PyArrayObject *)array, 0);
    4046
     
    131137    // no need to really allocate fvec, just its struct member
    132138    mat = (fmat_t *)malloc(sizeof(fmat_t));
    133     mat->length = PyArray_DIM ((PyArrayObject *)array, 1);
    134     mat->height = PyArray_DIM ((PyArrayObject *)array, 0);
     139    long length = PyArray_DIM ((PyArrayObject *)array, 1);
     140    if (length > 0) {
     141      mat->length = (uint_t)length;
     142    } else {
     143      PyErr_SetString (PyExc_ValueError, "input array dimension 1 should be greater than 0");
     144      goto fail;
     145    }
     146    long height = PyArray_DIM ((PyArrayObject *)array, 0);
     147    if (height > 0) {
     148      mat->height = (uint_t)height;
     149    } else {
     150      PyErr_SetString (PyExc_ValueError, "input array dimension 0 should be greater than 0");
     151      goto fail;
     152    }
    135153    mat->data = (smpl_t **)malloc(sizeof(smpl_t*) * mat->height);
    136154    for (i=0; i< mat->height; i++) {
Note: See TracChangeset for help on using the changeset viewer.