Ignore:
Timestamp:
Nov 17, 2009 2:37:53 PM (10 years ago)
Author:
awalther
Message:

fix some memroy leaks and introduce new interfaces

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ADOL-C/src/uni5_for.c

    r56 r58  
    575575    int               depcheck,    /* consistency chk on # of dependents   */
    576576    int               indcheck,    /* consistency chk on # of independents */
    577     double            *basepoint,  /* independent variable values   (in)   */
    578     unsigned int     **crs)        /* returned row index storage (out)     */
     577    const double     *basepoint,   /* independent variable values   (in)   */
     578    unsigned int    **crs)         /* returned row index storage (out)     */
    579579
    580580/* indopro_forward_safe( tag, m, n, x[n], *crs[m]),
     
    590590int nonl_ind_forward_tight(
    591591    short             tnum,        /* tape id                              */
     592    int               depcheck,    /* consistency chk on # of dependents   */
    592593    int               indcheck,    /* consistency chk on # of independents */
    593     double            *basepoint,  /* independent variable values   (in)   */
     594    const double     *basepoint,  /* independent variable values   (in)   */
    594595    unsigned int     **crs)        /* returned row index storage (out)     */
    595596
     
    597598   
    598599  */
    599 
    600 #define depcheck -1
    601600
    602601#endif
     
    607606int nonl_ind_forward_safe(
    608607    short             tnum,        /* tape id                              */
     608    int               depcheck,    /* consistency chk on # of dependents   */
    609609    int               indcheck,    /* consistency chk on # of independents */
    610     double            *basepoint,  /* independent variable values   (in)   */
    611     unsigned int     **crs)        /* returned row index storage (out)     */
     610    const double      *basepoint,  /* independent variable values   (in)   */
     611    unsigned int    **crs)        /* returned row index storage (out)     */
    612612
    613613/* indopro_forward_safe( tag, m, n, x[n], *crs[m]),
     
    643643    int           indcheck,    /* consistency chk on # of indeps */
    644644    int           p,           /* # of taylor series */
    645     const double *basepoint,  /* independent variable values */
    646     double      **argument,  /* Taylor coefficients (input) */
    647     double       *valuepoint, /* Taylor coefficients (output) */
    648     double      **taylors)   /* matrix of coifficient vectors */
     645    const double *basepoint,   /* independent variable values */
     646    double      **argument,    /* Taylor coefficients (input) */
     647    double       *valuepoint,  /* Taylor coefficients (output) */
     648    double      **taylors)     /* matrix of coifficient vectors */
    649649/* the order of the indices in argument and taylors is [var][taylor] */
    650650#endif
     
    742742#if defined (_INDO_)
    743743    int l=0;
     744    int max_ind_dom;
    744745#if defined(_NONLIND_)
    745746    /* nonlinear interaction domains */
    746747    IndexElement** nonl_dom;
    747748    IndexElement*  temp;
     749    IndexElement*  temp1;
    748750#endif
    749751#endif
     
    909911                " to forward is\ninconsistent with number "
    910912                "recorded on tape (%d, %d) \n", tnum,
     913                depcheck, indcheck,
    911914                ADOLC_CURRENT_TAPE_INFOS.stats[NUM_DEPENDENTS],
    912                 ADOLC_CURRENT_TAPE_INFOS.stats[NUM_INDEPENDENTS],
    913                 depcheck, indcheck);
     915                ADOLC_CURRENT_TAPE_INFOS.stats[NUM_INDEPENDENTS]);
    914916        exit (-1);
    915917    }
     
    991993    }
    992994
     995    max_ind_dom = ADOLC_CURRENT_TAPE_INFOS.stats[NUM_MAX_LIVES];
    993996#if defined(_NONLIND_)
    994997    nonl_dom = (struct IndexElement**) malloc(sizeof(struct IndexElement*) * indcheck);
     
    37053708#if defined(_INDO_)
    37063709
    3707     for(i=0;i<ADOLC_CURRENT_TAPE_INFOS.stats[NUM_MAX_LIVES];i++)
    3708       free(ind_dom[i]);
     3710    for(i=0;i<max_ind_dom;i++)
     3711      {
     3712        free(ind_dom[i]);
     3713      }
    37093714    free(ind_dom);
    37103715
     
    37133718        if (nonl_dom[i] != NULL) {
    37143719            crs[i] = (unsigned int*) malloc(sizeof(unsigned int) * (nonl_dom[i]->entry+1));
     3720            temp1 = nonl_dom[i];
    37153721            temp = nonl_dom[i]->next;
     3722            free(temp1);
    37163723            crs[i][0] = nonl_dom[i]->entry;
    37173724            for(l=1;l<=crs[i][0];l++) {
    37183725                crs[i][l] = temp->entry;
     3726                temp1 = temp;
    37193727                temp = temp->next;
     3728                free(temp1);
    37203729            }
    37213730        } else {
     
    37243733        }
    37253734    }
     3735    free(nonl_dom);
    37263736
    37273737#endif
     
    37803790        {
    37813791          i = 2*(num1+num);
    3782             free(ind_dom[res]);
    3783             ind_dom[res] = (locint *)  malloc(sizeof(locint) * i);
    3784             ind_dom[res][1] = i;
     3792          free(ind_dom[res]);
     3793          ind_dom[res] = (locint *)  malloc(sizeof(locint) * i);
     3794          ind_dom[res][1] = i;
    37853795        }
    37863796        i = 0;
Note: See TracChangeset for help on using the changeset viewer.