File: ccafbounds_emxutil.c

    1   /*
    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