danieleteti / delphimvcframework

DMVCFramework (for short) is a popular and powerful framework for WEB API in Delphi. Supports RESTful and JSON-RPC WEB APIs development.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Memory Leak in Swagger doc

maiconsi opened this issue · comments

Identify some memory leaks in the Swagger classes.
Follow the corrections.
File: Swag.Doc.pas
Line: 261
Result.AddPair(fDefinitions.Items[vIndex].Name, fDefinitions.Items[vIndex].JsonSchema.Clone as TJSONObject);


File: Swag.Doc.Defnition.pas
Line: 73

if Assigned(fJsonSchema) then
    FreeAndNil(fJsonSchema);

File: Swag.Doc.Path.Operation.RequestParameter.pas
Line: 208
vJsonObject.AddPair(c_SwagRequestParameterSchema, fSchema.JsonSchema.Clone as TJSONObject);
File: Swag.Doc.Path.Operation.Response.pas
Line: 147
vJsonObject.AddPair(c_SwagResponseSchema, fSchema.JsonSchema.Clone as TJSONObject);
Line: 189
fSchema.JsonSchema := pJson.Values[c_SwagResponseSchema].Clone as TJSONObject;

Source.zip

Can you provide an example that generates memory leaks? Because using the current version of SwagDoc I couldn't find any memory leaks.

Hello, sorry for the delay.
You can actually use the DMVCFramework example "swaggerdoc".
The only difference is that I am using FastMM4.
I verified that if I don't use it, these errors don't occur, now I don't know if it's a delphi failure to not report this leak or FastMM4's failure!
Screenshot_69
Screenshot_68
Screenshot_67

Thanks for the contribution!