matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d917f9af97
commit
3df207c883
6
eval.c
6
eval.c
@ -7149,7 +7149,11 @@ rb_thread_schedule()
|
|||||||
}
|
}
|
||||||
|
|
||||||
FOREACH_THREAD_FROM(curr, th) {
|
FOREACH_THREAD_FROM(curr, th) {
|
||||||
if (th->status <= THREAD_RUNNABLE) {
|
if (th->status == THREAD_TO_KILL) {
|
||||||
|
next = th;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (th->status == THREAD_RUNNABLE) {
|
||||||
if (!next || next->priority < th->priority)
|
if (!next || next->priority < th->priority)
|
||||||
next = th;
|
next = th;
|
||||||
}
|
}
|
||||||
|
25
gc.c
25
gc.c
@ -753,19 +753,27 @@ obj_free(obj)
|
|||||||
break;
|
break;
|
||||||
case T_STRING:
|
case T_STRING:
|
||||||
#define STR_NO_ORIG FL_USER2 /* copied from string.c */
|
#define STR_NO_ORIG FL_USER2 /* copied from string.c */
|
||||||
if (!RANY(obj)->as.string.orig || FL_TEST(obj, STR_NO_ORIG))
|
if (!RANY(obj)->as.string.orig || FL_TEST(obj, STR_NO_ORIG)) {
|
||||||
free(RANY(obj)->as.string.ptr);
|
free(RANY(obj)->as.string.ptr);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case T_ARRAY:
|
case T_ARRAY:
|
||||||
if (RANY(obj)->as.array.ptr) free(RANY(obj)->as.array.ptr);
|
if (RANY(obj)->as.array.ptr) {
|
||||||
|
free(RANY(obj)->as.array.ptr);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case T_HASH:
|
case T_HASH:
|
||||||
if (RANY(obj)->as.hash.tbl)
|
if (RANY(obj)->as.hash.tbl) {
|
||||||
st_free_table(RANY(obj)->as.hash.tbl);
|
st_free_table(RANY(obj)->as.hash.tbl);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case T_REGEXP:
|
case T_REGEXP:
|
||||||
if (RANY(obj)->as.regexp.ptr) re_free_pattern(RANY(obj)->as.regexp.ptr);
|
if (RANY(obj)->as.regexp.ptr) {
|
||||||
if (RANY(obj)->as.regexp.str) free(RANY(obj)->as.regexp.str);
|
re_free_pattern(RANY(obj)->as.regexp.ptr);
|
||||||
|
}
|
||||||
|
if (RANY(obj)->as.regexp.str) {
|
||||||
|
free(RANY(obj)->as.regexp.str);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case T_DATA:
|
case T_DATA:
|
||||||
if (DATA_PTR(obj)) {
|
if (DATA_PTR(obj)) {
|
||||||
@ -798,7 +806,9 @@ obj_free(obj)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case T_BIGNUM:
|
case T_BIGNUM:
|
||||||
if (RANY(obj)->as.bignum.digits) free(RANY(obj)->as.bignum.digits);
|
if (RANY(obj)->as.bignum.digits) {
|
||||||
|
free(RANY(obj)->as.bignum.digits);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case T_NODE:
|
case T_NODE:
|
||||||
switch (nd_type(obj)) {
|
switch (nd_type(obj)) {
|
||||||
@ -827,8 +837,9 @@ obj_free(obj)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case T_STRUCT:
|
case T_STRUCT:
|
||||||
if (RANY(obj)->as.rstruct.ptr)
|
if (RANY(obj)->as.rstruct.ptr) {
|
||||||
free(RANY(obj)->as.rstruct.ptr);
|
free(RANY(obj)->as.rstruct.ptr);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user