зеркало из https://github.com/github/ruby.git
* eval.c (rb_eval): use rb_ary_new2 instead of rb_ary_new4 to avoid
GC problem. (rb_yield_values): use rb_ary_new2 instead of rb_ary_new4. * array.c (rb_ary_new4): don't set len as n. make it safe with GC. [ruby-dev:28826] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
b72f065343
Коммит
bb87f28346
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
Sat Jun 24 23:37:41 2006 Tanaka Akira <akr@m17n.org>
|
||||
|
||||
* eval.c (rb_eval): use rb_ary_new2 instead of rb_ary_new4 to avoid
|
||||
GC problem.
|
||||
(rb_yield_values): use rb_ary_new2 instead of rb_ary_new4.
|
||||
|
||||
* array.c (rb_ary_new4): don't set len as n. make it safe with GC.
|
||||
|
||||
[ruby-dev:28826]
|
||||
|
||||
Fri Jun 23 23:35:32 2006 Tanaka Akira <akr@m17n.org>
|
||||
|
||||
* ruby.h, lib/drb/drb.rb, lib/drb/invokemethod.rb: remove Values class.
|
||||
|
@ -266,7 +276,7 @@ Sat Jun 10 15:12:29 2006 NAKAMURA Usaku <usa@ruby-lang.org>
|
|||
|
||||
Sat Jun 10 10:13:13 2006 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* lib/getoptlong.rb (GetoptLong#set_options): recieve arguments
|
||||
* lib/getoptlong.rb (GetoptLong#set_options): receive arguments
|
||||
as Array.
|
||||
|
||||
* lib/irb/slex.rb: use Proc#yield.
|
||||
|
@ -303,7 +313,7 @@ Sat Jun 10 06:53:22 2006 NAKAMURA Usaku <usa@ruby-lang.org>
|
|||
|
||||
* eval.c (CALLARGS): remove last semicolon. C90 compiler doesn't
|
||||
allow any lines (even if they're empty) within variable
|
||||
declaretions.
|
||||
declarations.
|
||||
|
||||
Fri Jun 9 09:56:32 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||
|
||||
|
@ -626,7 +636,7 @@ Sat May 13 16:14:05 2006 Tanaka Akira <akr@m17n.org>
|
|||
|
||||
* lib/pp.rb (PP.mcall): new method.
|
||||
(Struct#pretty_print): call Kernel#class and Struct#members even if
|
||||
overriden.
|
||||
overridden.
|
||||
(Struct#pretty_print_cycle): ditto.
|
||||
[ruby-core:7865]
|
||||
|
||||
|
|
2
array.c
2
array.c
|
@ -163,8 +163,8 @@ rb_ary_new4(long n, const VALUE *elts)
|
|||
ary = rb_ary_new2(n);
|
||||
if (n > 0 && elts) {
|
||||
MEMCPY(RARRAY(ary)->ptr, elts, VALUE, n);
|
||||
}
|
||||
RARRAY(ary)->len = n;
|
||||
}
|
||||
|
||||
return ary;
|
||||
}
|
||||
|
|
4
eval.c
4
eval.c
|
@ -3635,7 +3635,7 @@ rb_eval(VALUE self, NODE *n)
|
|||
long i;
|
||||
|
||||
i = node->nd_alen;
|
||||
val = rb_ary_new4(i, 0);
|
||||
val = rb_ary_new2(i);
|
||||
for (i=0;node;node=node->nd_next) {
|
||||
RARRAY(val)->ptr[i++] = rb_eval(self, node->nd_head);
|
||||
RARRAY(val)->len = i;
|
||||
|
@ -4881,7 +4881,7 @@ rb_yield_values(int n, ...)
|
|||
if (n == 0) {
|
||||
return rb_yield_0(Qundef, 0, 0, 0);
|
||||
}
|
||||
val = rb_ary_new4(n, 0);
|
||||
val = rb_ary_new2(n);
|
||||
va_start(args, n);
|
||||
for (i=0; i<n; i++) {
|
||||
RARRAY(val)->ptr[i] = va_arg(args, VALUE);
|
||||
|
|
Загрузка…
Ссылка в новой задаче