On Sun, 18 Dec 2011, ik wrote:
Hello, I'm using FPC 2.6 (rc) x86_64 on Linux with JSONParser. I've written the following code: ----------------------- uses fpjson, jsonparser, SysUtils, classes; var parser : TJSONParser; json_file : TFileStream; begin json_file := TFileStream.Create('/tmp/test.json', fmOpenRead); json_file.position := 0; parser := TJSONParser.create(json_file); writeln('JSON: ', parser.Parse.AsJSON);
You are not freeing the result of the parse operation ? The user is responsible for freeing the result of .parse() So you must do Var D: TJSONData; parser := TJSONParser.create(json_file); D:=Parser.parse; writeln('JSON: ', D.AsJSON); D.free; // Free result of parse. And while you're at it, you must always use try/finally blocks.Otherwise any exception (an error in the json) will result in your code not freeing the file stream or parser instance.
Michael.
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal