# \[Bug #1997\] memory leak on redefining method

**URL:** <https://www.ruby-forum.com/t/bug-1997-memory-leak-on-redefining-method/174438>\
**Category:** Development\
**Created:** [August 26, 2009, 7:08pm UTC](https://www.ruby-forum.com/t/bug-1997-memory-leak-on-redefining-method/174438 "2009-08-26T19:08:17Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Usaku\_NAKAMURA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/cc9497/32.png) [@Usaku\_NAKAMURA](https://www.ruby-forum.com/u/Usaku_NAKAMURA)\
**Post date:** [August 26, 2009, 7:08pm UTC](https://www.ruby-forum.com/t/bug-1997-memory-leak-on-redefining-method/174438/1 "2009-08-26T19:08:17Z")

</div>

Bug #1997: memory leak on redefining method  
[http://redmine.ruby-lang.org/issues/show/1997](http://redmine.ruby-lang.org/issues/show/1997)

e$B5/I\<\<Te(B: Usaku NAKAMURA  
e$B%9%F!\<%?%9e(B: Assigned, e$BM%@hEYe(B: Normal  
e$BC4Ev\<Te(B: Nobuyoshi N., e$B%+%F%4%je(B: core, Target version:  
1.9.x  
ruby -v: ruby 1.9.2dev (2009-08-26 trunk 24658) [i386-mswin32]

e$B0J2\<$N%9%/%j%W%H$,%a%b%j$r$I$s$I$s?)$$$D$V$7$^$9!#e(B

loop do  
class C  
def foo  
end  
end  
GC.start  
end

vm\_method.ce$B$Ne(Brb\_add\_method()e$B$r8+$?$H$3$m!"e(BTODOe$B$rD\>$7K:$l$F$k$h$&$G$9!#e(B  
e$B$^$?!"e(Bremove\_methode$B$G$b%a%b%j$r2rJ|$7$F$J$$$N$G!"F1$8$h$&$K%a%b%j$r?)$$$D$V$9$3$H$,=PMh$=$&$G$9!#e(B

# e$B$J$+$@$5$s$,=$@5$r9M$($F$/$l$F$$$k$=$&$J$N$G!“%”%5%$%s$7$H$-$^$9e(B

---

<div class="post-metadata">

**Author:** ![Usaku\_NAKAMURA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/cc9497/32.png) [@Usaku\_NAKAMURA](https://www.ruby-forum.com/u/Usaku_NAKAMURA)\
**Post date:** [August 27, 2009, 11:55am UTC](https://www.ruby-forum.com/t/bug-1997-memory-leak-on-redefining-method/174438/2 "2009-08-27T11:55:10Z")

</div>

e$B$J$+$@$G$9!#e(B

At Wed, 26 Aug 2009 15:30:50 +0900,  
Usaku NAKAMURA wrote in [ruby-dev:39165]:

> vm\_method.ce$B$Ne(Brb\_add\_method()e$B$r8+$?$H$3$m!"e(BTODOe$B$rD\>$7K:$l$F$k$h$&$G$9!#e(B  
> e$B$^$?!"e(Bremove\_methode$B$G$b%a%b%j$r2rJ|$7$F$J$$$N$G!"F1$8$h$&$K%a%b%j$r?)$$$D$V$9$3$H$,=PMh$=$&$G$9!#e(B

aliase$B$N07$$$,$^$:$=$&$@$C$?$N$G!"$+$J$jBg$-$/$J$C$F$7$^$$$^$7$?!#e(B

- method\_h (rb\_method\_definition\_t): split from rb\_method\_entry\_t.

> <https://gist.github.com/nobu/176200>

---

<div class="post-metadata">

**Author:** ![Usaku\_NAKAMURA](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/cc9497/32.png) [@Usaku\_NAKAMURA](https://www.ruby-forum.com/u/Usaku_NAKAMURA)\
**Post date:** [August 28, 2009, 4:48am UTC](https://www.ruby-forum.com/t/bug-1997-memory-leak-on-redefining-method/174438/3 "2009-08-28T04:48:31Z")

</div>

e$B%A%1%C%He(B #1997 e$B$,99?7$5$l$^$7$?!#e(B (by Nobuyoshi N.)

e$B%9%F!\<%?%9e(B Assignede$B$+$ie(BClosede$B$KJQ99e(B  
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

## Applied in changeset r24691.

[http://redmine.ruby-lang.org/issues/show/1997](http://redmine.ruby-lang.org/issues/show/1997)
