Delphi TJSONObject 開放時に EInvalidPointer のエラー
Delphi TJSONObject + TJSONArray を利用して、開放しようとするとエラーが発生
Json := TJSONObject.Create; try JsonTagsArray := TJSONArray.Create; try Json.AddPair('Array', JsonTagsArray); Caption := Json.ToString finally JsonTagsArray.Free; end; finally Json.Free; // ここでエラー end;Json.Free をコメントアウトするとエラーは発生しなくなるが、メモリリークが発生
Json := TJSONObject.Create; try JsonTagsArray := TJSONArray.Create; try Json.AddPair('Array', JsonTagsArray); Caption := Json.ToString finally JsonTagsArray.Free; end; finally // Json.Free; // メモリリークが起きる end;どうも TJSONArray に限らず、TJSONObject が開放されるときは配下もろとも開放されるらしく、入れ子になった TJSONObject でも同様の対応でよいみたい
Json := TJSONObject.Create; try JsonTagsArray := TJSONArray.Create; try Json.AddPair('Array', JsonTagsArray); Caption := Json.ToString finally // JsonTagsArray.Free; // 開放しなくてよい end; finally Json.Free; end;
aaaa
コメント