[Feature #3068] [TypedData] RUBY_TYPED_DEFAULT_FREE $B$OI,MW(B?

Feature #3068: [TypedData] RUBY_TYPED_DEFAULT_FREE e$B$OI,MWe(B?
http://redmine.ruby-lang.org/issues/show/3068

e$B5/I<<Te(B: Tadashi S.
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal

e$B:XF#$H?=$7$^$9!#e(B

1.9.2e$B$+$ie(BRUBY_TYPED_DEFAULT_FREEe$B$H$$$&$N$,F3F~$5$l$k$h$&$G$9$,!"e(B
e$B$3$l$OK\Ev$KI,MW$J$b$N$G$7$g$&$+!#e(B

#define RUBY_TYPED_DEFAULT_FREE ((void (*)(void *))-1)

e$B$N$h$&$K!"e(B-1e$B$re(B(dfreee$B$HF1$87?$Ne(B)e$B4X?t%]%$%s%?$K%-%c%9%H$9$k$@$1$Ne(B
e$B4JC1$J$b$N$G$9$,!"D>$K!Ve(B-1e$B!W$H=q$/$N$K$/$i$Y$F!"e(B10e$BG\0J>eD9$/$J$C$Fe(B
e$B$7$^$$$^$9!#e(B

e$B$5$i$K$h!<$/8+$k$H!"!Ve(B((void (*)(void *))-1)e$B!W$HD>=q$-$9$ke(B

e$B$h$j$bD9$/$J$C$F$^$9$Me(B

-1e$B$r;XDj$9$k$N$O!“e(BREADME.EXTe$B$K$b:$C$F$$$kEAE}$”$kJ}K!$J$N$G!“e(B
e$B$o$6$o$6:#$K$J$C$FJLL>$r$D$1$k;v$b$J$s$8$c$J$$$G$7$g$&$+!#e(B
e$B$=$l$H$b!”$I$3$+$i$+0U8+$d5DO@$,$"$C$?$N$G$7$g$&$+!#e(B
(e$B8+F($7$F$?$J$i$4$a$s$J$5$$e(B)

e$B$^$?!"$b$7!V!Xe(B-1e$B!Y$H$$$&%^%8%C%/%J%s%P!<$r;XDj$9$k$N$,1x$$!W!“e(B
e$B!V!Xe(B-1e$B!Y$HD>=q$-$7$?>l9g!”!Xe(B(void (*)(void
))e$B$He(Binte$B$N7?$,0c$&!Y$He(B
e$B%3%s%Q%$%i$KE$i$l$k!We(B(e$B$H$$$&$3$H$O$“$C$?$+$J$!e(B?)e$B$J$I$NM}M3$Ge(B
-1e$B$H=q$-$?$/$J$$$J$i$P!”$=$l$i$NB?$/$Oe(BRTypedDatae$B$N$_$G$J$/e(BRDatae$B$K$be(B
e$BEv$F$O$^$k$3$H$G$O$J$$$+$H?dB,$7$^$9!#$=$l$J$i$Pe(BTypede$B$G$J$$J}$Ne(B
RDatae$BMQ$K$b!"e(BRUBY_DEFAULT_FREE e$BEy$rDj5A$9$k$N$,6Z$G$O$J$$$Ge(B
e$B$7$g$&$+!#$=$N>l9g$OF1MM$K!"e(BRUBY_NEVER_FREE == (void (
)(void *))0
e$B$de(B RUBY_TYPED_NEVER_FREE e$B$rDj5A$9$kI,MW$b=P$k$G$7$g$&!#e(B

e$B$H$$$&$3$H$G!"CfESH>C<$@$H:.Mp$9$k$N$G!"e(B

e$B!&0lDL$jJLL>$rMQ0U$7$F!"$3$l$+$i$O$=$A$i$r;H$&$h$&$K?d>)$9$ke(B
e$B!&D9$$JLL>$ODj5A$;$:!"4J7i$J?tCM$ND>=q$-$rBh0l<jCJ$H$7B3$1$ke(B

e$B$N$I$A$i$+$K$A$c$s$H$=$m$($FM_$7$$$G$9!#e(B

e$B$h$m$7$/$*$M$,$$$7$^$9!#e(B

e$B!!$5$5$@$G$9!%e(B

(2010/04/01 1:27), Tadashi S. wrote::

1.9.2e$B$+$ie(BRUBY_TYPED_DEFAULT_FREEe$B$H$$$&$N$,F3F~$5$l$k$h$&$G$9$,!"e(B
e$B$3$l$OK\Ev$KI,MW$J$b$N$G$7$g$&$+!#e(B

e$B!!e(B-1 e$B$C$F=q$/$h$j$O$o$+$j$d$9$$$s$8$c$J$$$G$7$g$&$+!%e(B

-1e$B$r;XDj$9$k$N$O!“e(BREADME.EXTe$B$K$b:$C$F$$$kEAE}$”$kJ}K!$J$N$G!"e(B
e$B$o$6$o$6:#$K$J$C$FJLL>$r$D$1$k;v$b$J$s$8$c$J$$$G$7$g$&$+!#e(B

e$B!!$^$!!$EAE}$"$kL>A0$,$$$$$H$$$&$o$1$G$b$J$$$s$8$c$J$$$G$7$g$&$+!%e(B

e$B$^$?!"$b$7!V!Xe(B-1e$B!Y$H$$$&%^%8%C%/%J%s%P!<$r;XDj$9$k$N$,1x$$!W!“e(B
e$B!V!Xe(B-1e$B!Y$HD>=q$-$7$?>l9g!”!Xe(B(void (*)(void ))e$B$He(Binte$B$N7?$,0c$&!Y$He(B
e$B%3%s%Q%$%i$KE$i$l$k!We(B(e$B$H$$$&$3$H$O$"$C$?$+$J$!e(B?)e$B$J$I$NM}M3$Ge(B
-1e$B$H=q$-$?$/$J$$$J$i$P!"$=$l$i$NB?$/$Oe(BRTypedDatae$B$N$_$G$J$/e(BRDatae$B$K$be(B
e$BEv$F$O$^$k$3$H$G$O$J$$$+$H?dB,$7$^$9!#$=$l$J$i$Pe(BTypede$B$G$J$$J}$Ne(B
RDatae$BMQ$K$b!"e(BRUBY_DEFAULT_FREE e$BEy$rDj5A$9$k$N$,6Z$G$O$J$$$Ge(B
e$B$7$g$&$+!#$=$N>l9g$OF1MM$K!"e(BRUBY_NEVER_FREE == (void (
)(void *))0
e$B$de(B RUBY_TYPED_NEVER_FREE e$B$rDj5A$9$kI,MW$b=P$k$G$7$g$&!#e(B

e$B!!$^$!!$$"$C$F$b$$$$$+$b$7$l$^$;$s$M$’!%e(B

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

At Thu, 1 Apr 2010 01:27:52 +0900,
Tadashi S. wrote in [ruby-dev:40889]:

e$B!V!Xe(B-1e$B!Y$HD>=q$-$7$?>l9g!"!Xe(B(void (*)(void *))e$B$He(Binte$B$N7?$,0c$&!Y$He(B
e$B%3%s%Q%$%i$KE$i$l$k!We(B(e$B$H$$$&$3$H$O$"$C$?$+$J$!e(B?)e$B$J$I$NM}M3$Ge(B

e$B$3$l$,M}M3$G$9!#e(B

-1e$B$H=q$-$?$/$J$$$J$i$P!"$=$l$i$NB?$/$Oe(BRTypedDatae$B$N$_$G$J$/e(BRDatae$B$K$be(B
e$BEv$F$O$^$k$3$H$G$O$J$$$+$H?dB,$7$^$9!#$=$l$J$i$Pe(BTypede$B$G$J$$J}$Ne(B
RDatae$BMQ$K$b!"e(BRUBY_DEFAULT_FREE e$BEy$rDj5A$9$k$N$,6Z$G$O$J$$$Ge(B
e$B$7$g$&$+!#$=$N>l9g$OF1MM$K!"e(BRUBY_NEVER_FREE == (void (*)(void *))0
e$B$de(B RUBY_TYPED_NEVER_FREE e$B$rDj5A$9$kI,MW$b=P$k$G$7$g$&!#e(B

Data_Make_Structe$B$de(BData_Wrap_Structe$B$NCf$G%-%c%9%H$5$l$k$N$G!"$J$/e(B
e$B$F$be(BRDatae$B$K$O7Y9p$O=P$^$;$s!#$^$?!"%j%F%i%k$Ne(B0e$B$Oe(BNULLe$B%]%$%s%?$HF1e(B
e$B0l;k$5$l$k$N$G!"$3$A$i$b=P$^$;$s!#$H$$$&$3$H$G!"7Y9p$rM^$($k$?$ae(B
e$B$KI,MW$J$N$Oe(BRUBY_TYPED_DEFAULT_FREEe$B$@$1$H$$$&$N$,M}M3$G$9!#e(B

e$B$H$$$&$3$H$G!"CfESH>C<$@$H:.Mp$9$k$N$G!"e(B

e$B!&0lDL$jJLL>$rMQ0U$7$F!"$3$l$+$i$O$=$A$i$r;H$&$h$&$K?d>)$9$ke(B
e$B!&D9$$JLL>$ODj5A$;$:!"4J7i$J?tCM$ND>=q$-$rBh0l<jCJ$H$7B3$1$ke(B

e$B$N$I$A$i$+$K$A$c$s$H$=$m$($FM_$7$$$G$9!#e(B

e$BJLL>$rMQ0U$9$k$3$H$K$OH?BP$G$O$"$j$^$;$s!#e(B