/* * Arguments : emxArray_real_T **pEmxArray * Return Type : void */ static void emxFree_real_T(emxArray_real_T **pEmxArray) { if (*pEmxArray != (emxArray_real_T *)NULL) { if (((*pEmxArray)->data != (real_T *)NULL) && (*pEmxArray)->canFreeData) { emlrtFreeMex((void *)(*pEmxArray)->data); } emlrtFreeMex((void *)(*pEmxArray)->size); emlrtFreeMex((void *)*pEmxArray); *pEmxArray = (emxArray_real_T *)NULL; } }
void emxFree_int32_T(emxArray_int32_T **pEmxArray) { if (*pEmxArray != (emxArray_int32_T *)NULL) { if ((*pEmxArray)->canFreeData) { emlrtFreeMex((void *)(*pEmxArray)->data); } emlrtFreeMex((void *)(*pEmxArray)->size); emlrtFreeMex((void *)*pEmxArray); *pEmxArray = (emxArray_int32_T *)NULL; } }
/* * Arguments : emxArray__common *emxArray * int32_T oldNumel * int32_T elementSize * Return Type : void */ static void emxEnsureCapacity(emxArray__common *emxArray, int32_T oldNumel, int32_T elementSize) { int32_T newNumel; int32_T i; void *newData; newNumel = 1; for (i = 0; i < emxArray->numDimensions; i++) { newNumel *= emxArray->size[i]; } if (newNumel > emxArray->allocatedSize) { i = emxArray->allocatedSize; if (i < 16) { i = 16; } while (i < newNumel) { i <<= 1; } newData = emlrtCallocMex((uint32_T)i, (uint32_T)elementSize); if (emxArray->data != NULL) { memcpy(newData, emxArray->data, (uint32_T)(elementSize * oldNumel)); if (emxArray->canFreeData) { emlrtFreeMex(emxArray->data); } } emxArray->data = newData; emxArray->allocatedSize = i; emxArray->canFreeData = true; } }
void emxEnsureCapacity(emxArray__common *emxArray, int32_T oldNumel, int32_T elementSize, const emlrtRTEInfo *srcLocation) { int32_T newNumel; int32_T i; void *newData; newNumel = 1; for (i = 0; i < emxArray->numDimensions; i++) { newNumel = (int32_T)emlrtSizeMulR2012b((uint32_T)newNumel, (uint32_T) emxArray->size[i], srcLocation, emlrtRootTLSGlobal); } if (newNumel > emxArray->allocatedSize) { i = emxArray->allocatedSize; if (i < 16) { i = 16; } while (i < newNumel) { i = (int32_T)emlrtSizeMulR2012b((uint32_T)i, 2U, srcLocation, emlrtRootTLSGlobal); } newData = emlrtCallocMex((uint32_T)i, (uint32_T)elementSize); if (newData == NULL) { emlrtHeapAllocationErrorR2012b(srcLocation, emlrtRootTLSGlobal); } if (emxArray->data != NULL) { memcpy(newData, emxArray->data, (uint32_T)(elementSize * oldNumel)); if (emxArray->canFreeData) { emlrtFreeMex(emxArray->data); } } emxArray->data = newData; emxArray->allocatedSize = i; emxArray->canFreeData = TRUE; } }