rstconv: fixed memory leak

git-svn-id: trunk@26484 -
This commit is contained in:
paul 2014-01-17 02:15:35 +00:00
parent 34cf432600
commit 13a0b21031

View File

@ -121,7 +121,7 @@ procedure ReadRSJFile;
var var
Stream: TFileStream; Stream: TFileStream;
Parser: TJSONParser; Parser: TJSONParser;
JsonData: TJSONData; JsonData, JsonItems: TJSONData;
JsonItem: TJSONObject; JsonItem: TJSONObject;
S: String; S: String;
item: TConstItem; item: TConstItem;
@ -130,16 +130,21 @@ begin
Stream := TFileStream.Create(InFilename, fmOpenRead or fmShareDenyNone); Stream := TFileStream.Create(InFilename, fmOpenRead or fmShareDenyNone);
Parser := TJSONParser.Create(Stream); Parser := TJSONParser.Create(Stream);
try try
JsonData := Parser.Parse.GetPath('strings'); JsonData := Parser.Parse;
for I := 0 to JsonData.Count - 1 do try
begin JsonItems := JsonData.GetPath('strings');
item := TConstItem(ConstItems.Add); for I := 0 to JsonItems.Count - 1 do
JsonItem := JsonData.Items[I] as TJSONObject; begin
S := JsonItem.Get('name'); item := TConstItem(ConstItems.Add);
DotPos := Pos('.', s); JsonItem := JsonItems.Items[I] as TJSONObject;
item.ModuleName := Copy(s, 1, DotPos - 1); S := JsonItem.Get('name');
item.ConstName := Copy(s, DotPos + 1, Length(S) - DotPos); DotPos := Pos('.', s);
item.Value := JsonItem.Get('value'); item.ModuleName := Copy(s, 1, DotPos - 1);
item.ConstName := Copy(s, DotPos + 1, Length(S) - DotPos);
item.Value := JsonItem.Get('value');
end;
finally
JsonData.Free;
end; end;
finally finally
Parser.Free; Parser.Free;