File: ccafbounds_emxutil.c1 /* 2 * ccafbounds_emxutil.c 3 * 4 * Code generation for function 'ccafbounds_emxutil' 5 * 6 */ 7 8 /* Include files */ 9 #include "rt_nonfinite.h" 10 #include "ccafbounds.h" 11 #include "ccafbounds_emxutil.h" 12 13 /* Function Definitions */ 14 void emxEnsureCapacity(const emlrtStack *sp, emxArray__common *emxArray, int32_T 15 oldNumel, int32_T elementSize, const emlrtRTEInfo *srcLocation) 16 { 17 int32_T newNumel; 18 int32_T i; 19 void *newData; 20 newNumel = 1; 21 for (i = 0; i < emxArray->numDimensions; i++) { 22 newNumel = (int32_T)emlrtSizeMulR2012b((uint32_T)newNumel, (uint32_T) 23 emxArray->size[i], srcLocation, sp); 24 } 25 26 if (newNumel > emxArray->allocatedSize) { 27 i = emxArray->allocatedSize; 28 if (i < 16) { 29 i = 16; 30 } 31 32 while (i < newNumel) { 33 if (i > 1073741823) { 34 i = MAX_int32_T; 35 } else { 36 i <<= 1; 37 } 38 } 39 40 newData = emlrtCallocMex((uint32_T)i, (uint32_T)elementSize); 41 if (newData == NULL) { 42 emlrtHeapAllocationErrorR2012b(srcLocation, sp); 43 } 44 45 if (emxArray->data != NULL) { 46 memcpy(newData, emxArray->data, (uint32_T)(elementSize * oldNumel)); 47 if (emxArray->canFreeData) { 48 emlrtFreeMex(emxArray->data); 49 } 50 } 51 52 emxArray->data = newData; 53 emxArray->allocatedSize = i; 54 emxArray->canFreeData = true; 55 } 56 } 57 58 void emxFree_real_T(emxArray_real_T **pEmxArray) 59 { 60 if (*pEmxArray != (emxArray_real_T *)NULL) { 61 if (((*pEmxArray)->data != (real_T *)NULL) && (*pEmxArray)->canFreeData) { 62 emlrtFreeMex((void *)(*pEmxArray)->data); 63 } 64 65 emlrtFreeMex((void *)(*pEmxArray)->size); 66 emlrtFreeMex((void *)*pEmxArray); 67 *pEmxArray = (emxArray_real_T *)NULL; 68 } 69 } 70 71 void emxInit_real_T(const emlrtStack *sp, emxArray_real_T **pEmxArray, int32_T 72 numDimensions, const emlrtRTEInfo *srcLocation, boolean_T 73 doPush) 74 { 75 emxArray_real_T *emxArray; 76 int32_T i; 77 *pEmxArray = (emxArray_real_T *)emlrtMallocMex(sizeof(emxArray_real_T)); 78 if ((void *)*pEmxArray == NULL) { 79 emlrtHeapAllocationErrorR2012b(srcLocation, sp); 80 } 81 82 if (doPush) { 83 emlrtPushHeapReferenceStackR2012b(sp, (void *)pEmxArray, (void (*)(void *)) 84 emxFree_real_T); 85 } 86 87 emxArray = *pEmxArray; 88 emxArray->data = (real_T *)NULL; 89 emxArray->numDimensions = numDimensions; 90 emxArray->size = (int32_T *)emlrtMallocMex((uint32_T)(sizeof(int32_T) 91 * numDimensions)); 92 if ((void *)emxArray->size == NULL) { 93 emlrtHeapAllocationErrorR2012b(srcLocation, sp); 94 } 95 96 emxArray->allocatedSize = 0; 97 emxArray->canFreeData = true; 98 for (i = 0; i < numDimensions; i++) { 99 emxArray->size[i] = 0; 100 } 101 } 102 103 /* End of code generation (ccafbounds_emxutil.c) */ 104 |