git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2000-08-07 06:11:34 +00:00
parent c67251edb4
commit 5093c0496e
3 changed files with 7 additions and 2 deletions

View File

@ -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>

1
gc.c
View File

@ -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;

3
ruby.h
View File

@ -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)