Хотелось бы уточнить как правильно освобождать ресурсы при работе с TJSONData (fpjson)
Имеется приложение (демон) на astralinux, приложение реализует подобие REST интерфейса.
Есть метод
- Код: Выделить всё
// Смена статуса учетки
procedure THlpSrv.stateEmploeeEndpoint(ARequest: TRequest; AResponse: TResponse);
var
JsonData : TJSONData;
FindJsonData : TJSONData = nil;
.....
при вызове метода получаем json из тела запроса
- Код: Выделить всё
JsonData := GetJSON(ARequest.Content);
затем, необходимо проверить существование и если есть - получить значение атрибута
- Код: Выделить всё
FindJsonData := JsonData.FindPath('isEmployeeLocked');
if FindJsonData <> nil then
begin
accState := not FindJsonData.IsNull and FindJsonData.AsBoolean = True;
.....
в общем, все хорошо, все работает за исключением финализации
- Код: Выделить всё
finally
//if Assigned(FindJsonData) then
//FindJsonData.Free;
FreeAndNil(JsonData);
FreeAndNil(serverDate);
end;
при освобождении ресурсов, если попытаться освободить FindJsonData вываливается ошибка
Проект Daemon application вызвал класс исключения 'External: Unknown exception code 6'.
По адресу 7C64588EAFFF
если закоментарить - все работает.
Хотелось бы понять - как правильно освободить ресурс?