﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
2150	external function produces memory leaks	Willi Braun	probably noone	"following model generates memory leaks for Integer values.

{{{
system(""echo \""void extIntegerArray(int* a, int n, int* out){int i;for(i=0;i<n;i++){out[i] = a[i]+i;}}\"" > ExtIntegerArrayFunc.c"");
loadString(""

function extIntegerArray
  input Integer x[:];
  input Integer s;
  output Integer y[size(x,1)];
  external \""C\"" extIntegerArray(x,s,y) annotation(Library=\""libExtIntegerArrayFunc1_ext.a\"");
end extIntegerArray;

model A
  function extIntArray
    input Integer x[:];
    input Integer s;
    output Integer y[size(x,1)];
  algorithm
    y := extIntegerArray(x,s);
  end extIntArray;

  Integer ints[:] = {integer(2*time),integer(1*time),3,5,7,8,3};
  Integer ou1[size(ints,1)];

equation
  ou1 = extIntArray(ints,size(ints,1));
end A;"");
getErrorString();

system(""gcc -c -o libExtIntegerArrayFunc1_ext.a ExtIntegerArrayFunc.c"");
simulate(A, stopTime=0.1, numberOfIntervals=2);
system(""valgrind ./A"");
getErrorString();
}}}

it's the usage of data_of_integer_array in util/inter_array.h that produces memory leaks. 
"	defect	new	high	1.9.0	Backend	trunk			Martin Sjölund
