DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

Memory Leak’s UCDataInfo

Visualizando 1 post (de 1 do total)
  • Autor
    Posts
  • #4908
    Anderson Rocha
    Participante

    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.

Visualizando 1 post (de 1 do total)
  • Você deve fazer login para responder a este tópico.

Ir ao topo
© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados