Estava a procura de Memory Leaks no meu sistema e me deparei com um Memory Leaks na função logo abaixo
function TUCTableUsers.GetFieldList: TStringList;
var
LFieldList: TStringList;
begin
LFieldList := TStringList.Create;
try
LFieldList.Add(FieldUserID);
LFieldList.Add(FieldUserName);
LFieldList.Add(FieldLogin);
LFieldList.Add(FieldPassword);
LFieldList.Add(FieldEmail);
LFieldList.Add(FieldPrivileged);
LFieldList.Add(FieldTypeRec);
LFieldList.Add(FieldProfile);
LFieldList.Add(FieldKey);
LFieldList.Add(FieldDateExpired);
LFieldList.Add(FieldUserExpired);
LFieldList.Add(FieldUserDaysSun);
LFieldList.Add(FieldUserInative);
LFieldList.Add(FieldImage);
Result := LFieldList;
finally
FreeAndNil(LFieldList);
end;
end;
Então corrigi da seguinte maneira, criei uma variável global do tipo TStringList
var
vlList: TStringList; // VARIAVEL GLOBAL
implementation
function TUCTableUsers.GetFieldList: TStringList;
begin
vlList := TStringList.Create;
try
vlList.Add(FieldUserID);
vlList.Add(FieldUserName);
vlList.Add(FieldLogin);
vlList.Add(FieldPassword);
vlList.Add(FieldEmail);
vlList.Add(FieldPrivileged);
vlList.Add(FieldTypeRec);
vlList.Add(FieldProfile);
vlList.Add(FieldKey);
vlList.Add(FieldDateExpired);
vlList.Add(FieldUserExpired);
vlList.Add(FieldUserDaysSun);
vlList.Add(FieldUserInative);
vlList.Add(FieldImage);
Result := vlList;
finally
vlList.Clear;
end;
end;
destructor TUCTableUsersLogged.Destroy;
begin
if Assigned(vlList) then
FreeAndNil(vlList);
inherited;
end
Dessa maneira o Memory Leaks foi corrigido.