Tales Mendes de Camargo Postado 26 Novembro Postado 26 Novembro Por exemplo, após gerar um qrcode e ficar chamando ConsultarTransacao para consultar se esta concluída. Ao sair o Memory Leaked ocorre. Parece ser na TMateraTransactionResponseArray. This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer): 13 - 20 bytes: ACBrJSON.TACBrJSONObject x 4, JsonDataObjects_ACBr.TJsonArray x 4, System.Classes.TList x 4, Unknown x 4 21 - 36 bytes: JsonDataObjects_ACBr.TJsonObject x 6, UnicodeString x 8, Unknown x 10 37 - 52 bytes: UnicodeString x 14 53 - 68 bytes: UnicodeString x 2 69 - 84 bytes: UnicodeString x 2, Unknown x 2 85 - 100 bytes: UnicodeString x 6
Moderadores Juliomar Marchetti Postado 26 Novembro Moderadores Postado 26 Novembro Consegue gerar o log do componente ? dúvida se fizer uma única consulta não ocorre o leak? Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Tales Mendes de Camargo Postado 26 Novembro Autor Postado 26 Novembro Enviei o log do componente e o log do fastmm. Ocorre sempre. A cada chamada a função vai aumentando. Ao que me parece TransacoesResposta.Clear não está dando free nos objetos, mas é só uma suposição. E no Destroy também está faltando dar free em fSaldoECResposta. Obrigado ACBrPixCDMatera_MemoryManager_EventLog.zip _log.txt
Tales Mendes de Camargo Postado 28 Novembro Autor Postado 28 Novembro @Juliomar Marchetti encontrei os problemas e estou enviando a unit ACBrPIXPSPMatera.pas em anexo. Alterações que fiz: função RemoverResponseData não estava dando free e adicionei o try finally: function TACBrPSPMatera.RemoverResponseData(aJson: String): String; var wJO: TACBrJSONObject; begin wJO := TACBrJSONObject.Parse(aJson); try try Result := wJO.AsJSONObject['data'].ToJSON; except Result := aJson; end; finally wJO.Free; end; end; ======================================================= destructor TACBrPSPMatera.Destroy; begin ... if Assigned(fExtratoECResposta) then fExtratoECResposta.Free; if Assigned(fSaldoECResposta) then fSaldoECResposta.Free; inherited Destroy; end; ======================================================== procedure TACBrPSPMatera.Clear; begin inherited Clear; ... if Assigned(fExtratoECResposta) then fExtratoECResposta.Clear; if Assigned(fSaldoECResposta) then fSaldoECResposta.Clear; end; ACBrPIXPSPMatera.pas
Consultores EliasCesar Postado 3 Dezembro Consultores Postado 3 Dezembro Bom dia pessoal, Acabei de enviar as correções ao SVN, rev: 36356. 1 Elias César Vieira Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Assine o SAC
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora