Changeset 2846 for inundation/pymetis
- Timestamp:
- May 11, 2006, 3:15:56 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/pymetis/pymetis/metis.c
r2845 r2846 43 43 static PyObject * metis_partMeshNodal(PyObject * self, PyObject * args){ 44 44 int i; 45 int malloc_elem_c_arr = 0; 45 46 int ne; 46 47 int nn; … … 73 74 if(elem_arr->descr->type_num == PyArray_LONG){ 74 75 elem_c_arr = (idxtype *)malloc(*(elem_arr->dimensions) * sizeof(idxtype)); 76 malloc_elem_c_arr; 75 77 if(!elem_c_arr) 76 78 return NULL; 77 79 for(i = 0 ; i < *(elem_arr->dimensions) ; i++){ 78 80 elem_c_arr[i] = (idxtype)(((long *)elem_arr->data)[i]); 79 if(elem_c_arr[i] != ((long *)elem_arr->data)[i]) /* i.e. downcast failed */ 80 return null; 81 if(elem_c_arr[i] != ((long *)elem_arr->data)[i]){ /* i.e. downcast failed */ 82 free(elem_c_arr); 83 Py_DECREF(elem_arr); 84 return NULL; 81 85 } 82 86 }else … … 85 89 epart = (idxtype *)malloc(ne * sizeof(idxtype)); 86 90 if(epart == NULL){ 91 if(malloc_elem_c_arr) free(elem_c_arr); 87 92 Py_DECREF(elem_arr); 88 93 return NULL; … … 90 95 npart = (idxtype *)malloc(nn * sizeof(idxtype)); 91 96 if(npart == NULL){ 97 if(malloc_elem_c_arr) free(elem_c_arr); 92 98 free(epart); 93 99 Py_DECREF(elem_arr); … … 101 107 npart_pyarr = (PyArrayObject *)PyArray_FromDimsAndData(1, dims, PyArray_INT, (char *)npart); 102 108 109 110 if(malloc_elem_c_arr) free(elem_c_arr); 103 111 Py_DECREF(elem_arr); 104 112
Note: See TracChangeset
for help on using the changeset viewer.