mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c67251edb4
commit
5093c0496e
3 changed files with 7 additions and 2 deletions
|
@ -1,5 +1,8 @@
|
||||||
Mon Aug 7 13:59:12 2000 Yukihiro Matsumoto <matz@ruby-lang.org>
|
Mon Aug 7 13:59:12 2000 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* ruby.h (CLONESETUP): should copy flags before any potential
|
||||||
|
object allocation.
|
||||||
|
|
||||||
* regex.c (re_match): check for stack depth was needed.
|
* regex.c (re_match): check for stack depth was needed.
|
||||||
|
|
||||||
Sat Aug 5 16:43:43 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
Sat Aug 5 16:43:43 2000 WATANABE Hirofumi <eban@os.rim.or.jp>
|
||||||
|
|
3
gc.c
3
gc.c
|
@ -280,6 +280,7 @@ rb_newobj()
|
||||||
|
|
||||||
if (!freelist) rb_gc();
|
if (!freelist) rb_gc();
|
||||||
|
|
||||||
|
if (freelist->as.free.next && freelist->as.free.next->as.free.flag != 0) abort();
|
||||||
obj = (VALUE)freelist;
|
obj = (VALUE)freelist;
|
||||||
freelist = freelist->as.free.next;
|
freelist = freelist->as.free.next;
|
||||||
return obj;
|
return obj;
|
||||||
|
@ -665,7 +666,7 @@ gc_sweep()
|
||||||
if (p->as.basic.flags) {
|
if (p->as.basic.flags) {
|
||||||
obj_free((VALUE)p);
|
obj_free((VALUE)p);
|
||||||
}
|
}
|
||||||
if (need_call_final && FL_TEST(p, FL_FINALIZE)) {
|
if (need_call_final && FL_TEST(p, FL_FINALIZE)) {
|
||||||
p->as.free.flag = FL_MARK; /* remain marked */
|
p->as.free.flag = FL_MARK; /* remain marked */
|
||||||
p->as.free.next = final_list;
|
p->as.free.next = final_list;
|
||||||
final_list = p;
|
final_list = p;
|
||||||
|
|
3
ruby.h
3
ruby.h
|
@ -222,7 +222,8 @@ VALUE rb_newobj _((void));
|
||||||
if (rb_safe_level() >= 3) FL_SET(obj, FL_TAINT);\
|
if (rb_safe_level() >= 3) FL_SET(obj, FL_TAINT);\
|
||||||
}
|
}
|
||||||
#define CLONESETUP(clone,obj) do {\
|
#define CLONESETUP(clone,obj) do {\
|
||||||
OBJSETUP(clone,rb_singleton_class_clone(RBASIC(obj)->klass),RBASIC(obj)->flags);\
|
RBASIC(clone)->flags = (RBASIC(obj)->flags);\
|
||||||
|
RBASIC(obj)->klass = (rb_singleton_class_clone(RBASIC(obj)->klass));\
|
||||||
rb_singleton_class_attached(RBASIC(clone)->klass, (VALUE)clone);\
|
rb_singleton_class_attached(RBASIC(clone)->klass, (VALUE)clone);\
|
||||||
if (FL_TEST(obj, FL_EXIVAR)) rb_clone_generic_ivar((VALUE)clone,(VALUE)obj);\
|
if (FL_TEST(obj, FL_EXIVAR)) rb_clone_generic_ivar((VALUE)clone,(VALUE)obj);\
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
Loading…
Add table
Reference in a new issue