1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* eval.c (rb_thread_cleanup): should not modify the global

variable curr_thread.

* re.c (rb_reg_initialize_m): frozen check should be moved here
  from rb_reg_initialize().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@2732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2002-08-21 08:31:25 +00:00
parent c704e3655b
commit 01b6c01cb6
3 changed files with 19 additions and 8 deletions

View file

@ -1,3 +1,8 @@
Wed Aug 21 16:43:19 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
* eval.c (rb_thread_cleanup): should not modify the global
variable curr_thread.
Tue Aug 20 19:39:03 2002 WATANABE Hirofumi <eban@ruby-lang.org>
* file.c (rb_file_s_expand_path): accept drive letter on Cygwin.
@ -17,6 +22,11 @@ Mon Aug 19 19:01:55 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* misc/inf-ruby.el (ruby-send-terminator): added to make unique
terminator.
Mon Aug 19 17:08:19 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
* re.c (rb_reg_initialize_m): frozen check should be moved here
from rb_reg_initialize().
Mon Aug 19 15:38:44 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
* array.c (sort_2): comparison should be done as signed long.

11
eval.c
View file

@ -8627,13 +8627,14 @@ rb_thread_wait_other_threads()
static void
rb_thread_cleanup()
{
rb_thread_t th;
rb_thread_t curr, th;
while (curr_thread->status == THREAD_KILLED) {
curr_thread = curr_thread->prev;
curr = curr_thread;
while (curr->status == THREAD_KILLED) {
curr = curr_thread->prev;
}
FOREACH_THREAD(th) {
FOREACH_THREAD_FROM(curr, th) {
if (th->status != THREAD_KILLED) {
rb_thread_ready(th);
th->gid = 0;
@ -8643,7 +8644,7 @@ rb_thread_cleanup()
}
}
}
END_FOREACH(th);
END_FOREACH_FROM(curr, th);
}
int rb_thread_critical;

6
re.c
View file

@ -833,9 +833,6 @@ rb_reg_initialize(obj, s, len, options)
{
struct RRegexp *re = RREGEXP(obj);
if (OBJ_FROZEN(obj)) {
rb_error_frozen("Regexp");
}
if (re->ptr) re_free_pattern(re->ptr);
if (re->str) free(re->str);
re->ptr = 0;
@ -1023,6 +1020,9 @@ rb_reg_initialize_m(argc, argv, self)
}
}
if (OBJ_FROZEN(self)) {
rb_error_frozen("Regexp");
}
src = argv[0];
if (TYPE(src) == T_REGEXP) {
rb_reg_check(src);