1. 25 Dec, 2019 2 commits
    • KOBAYASHI Shuji's avatar
      Fix potentially use of wrong method cache · 0b2d54f4
      KOBAYASHI Shuji authored
      #### Example (with `MRB_METHOD_CACHE`)
      
        ```ruby
        GC.start
        c = Class.new
        p c            #=> #<Class:0x7fd6a180e790>
        c.new          #=> cache `c.new`
        c = nil
        GC.start       #=> `c` is GCed
        r = Range.dup
        p r            #=> #<Class:0x7fd6a180e790>
                       #   [same pointer as `c`]
        r.new(2, 3)    #=> ArgumentError: 'initialize':
                       #   wrong number of arguments (2 for 0)
                       #   [`c.new` is called instead of `r.new`]
        ```
      
      #### Cause
      
        An entry of method cache is identified by class pointer and method
        id. However, reusing memory after GC may create a class with the same
        pointer as the cached class.
      
      #### Treatment
      
        Cleared method caches of the class when the class is GCed.
      0b2d54f4
    • Yukihiro "Matz" Matsumoto's avatar
      Merge pull request #4906 from shuujii/refine-the-assertion-failure-message-in-mrdb-print-tests · d4cbe627
      Yukihiro "Matz" Matsumoto authored
      Refine the assertion failure message in mrdb print tests
      d4cbe627
  2. 24 Dec, 2019 2 commits
  3. 23 Dec, 2019 8 commits
  4. 22 Dec, 2019 7 commits
  5. 21 Dec, 2019 9 commits
  6. 20 Dec, 2019 6 commits
  7. 19 Dec, 2019 4 commits
  8. 18 Dec, 2019 2 commits