Project

General

Profile

« Previous | Next » 

Revision 46b62f44

Added by nagachika (Tomoyuki Chikanaga) almost 2 years ago

merge revision(s) 3592b24cdc07ed89eecb39161f21fe721a89a5de: [Backport #19531]

    ObjectSpace::WeakMap: clean inverse reference when an entry is
     re-assigned

    [Bug #19531]

    ```ruby
    wmap[1] = "A"
    wmap[1] = "B"
    ```

    In the example above, we need to remove the `"A" => 1` inverse reference
    so that when `"A"` is GCed the `1` key isn't deleted.
    ---
     test/ruby/test_weakmap.rb | 17 +++++++++
     weakmap.c                 | 91 ++++++++++++++++++++++++++++++++++++++---------
     2 files changed, 91 insertions(+), 17 deletions(-)