Skip to content

Commit

Permalink
- Fix performance issue with SimulationResultsCmp.c (quadratic-time m…
Browse files Browse the repository at this point in the history
…emory allocation)

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@14984 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
sjoelund committed Jan 29, 2013
1 parent 199fb49 commit 50e3900
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions Compiler/runtime/SimulationResultsCmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -515,13 +515,9 @@ unsigned int cmpData(char* varname, DataField *time, DataField *reftime, DataFie
isdifferent = 1;
if (ddf->n >= ddf->n_max) {
DiffData *diffdatafild;
ddf->n_max += 10;
diffdatafild = (DiffData*) malloc(sizeof(DiffData)*(ddf->n_max));
for (k=0;k<ddf->n;k++) {
diffdatafild[k] = ddf->data[k];
}
if(ddf->data) free(ddf->data);
ddf->data = diffdatafild;
ddf->n_max = ddf->n_max ? ddf->n_max*2 : 1024;
ddf->data = (DiffData*) realloc(ddf->data, sizeof(DiffData)*(ddf->n_max));
/* TODO: Check for errors? */
}
ddf->data[ddf->n].name = varname;
ddf->data[ddf->n].data = d;
Expand Down

0 comments on commit 50e3900

Please sign in to comment.