ruby/ext/json
Peter Zhu 6e34386794
[flori/json] Fix memory leak when exception is raised during JSON generation
If an exception is raised the FBuffer is leaked.

For example, the following script leaks memory:

    o = Object.new
    def o.to_json(a) = raise

    10.times do
      100_000.times do
        begin
          JSON(o)
        rescue
        end
      end

      puts `ps -o rss= -p #{$$}`
    end

Before:

    31824
    35696
    40240
    44304
    47424
    50944
    54000
    58384
    62416
    65296

After:

    24416
    24640
    24640
    24736
    24736
    24736
    24736
    24736
    24736
    24736

44df509dc2
2024-03-27 08:24:28 +09:00
..
fbuffer Merge json-2.0.4. 2017-04-12 00:21:18 +00:00
generator [flori/json] Fix memory leak when exception is raised during JSON generation 2024-03-27 08:24:28 +09:00
lib [flori/json] Make OpenStruct support as optional 2024-01-31 14:56:00 +09:00
parser Manually merged from flori/json 2023-12-01 16:47:06 +09:00
depend Added depend files 2019-07-14 01:31:29 +09:00
extconf.rb Implement a freeze: parser option 2020-10-20 21:40:25 +09:00
json.gemspec Removed obsoleted version definition 2023-12-05 12:04:35 +09:00