зеркало из https://github.com/github/ruby.git
* eval.c (ruby_exec_internal): do nothing if no code.
* compile.c (rb_iseq_compile): check node if NULL before check nd_type. [ruby-talk:252956] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
a1cb9efd34
Коммит
b904e87f08
|
@ -1,3 +1,10 @@
|
||||||
|
Sat May 26 00:38:21 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* eval.c (ruby_exec_internal): do nothing if no code.
|
||||||
|
|
||||||
|
* compile.c (rb_iseq_compile): check node if NULL before check
|
||||||
|
nd_type. [ruby-talk:252956]
|
||||||
|
|
||||||
Sat May 26 00:05:22 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sat May 26 00:05:22 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -144,7 +144,10 @@ rb_iseq_compile(VALUE self, NODE *node)
|
||||||
rb_iseq_t *iseq;
|
rb_iseq_t *iseq;
|
||||||
GetISeqPtr(self, iseq);
|
GetISeqPtr(self, iseq);
|
||||||
|
|
||||||
if (nd_type(node) == NODE_SCOPE) {
|
if (node == 0) {
|
||||||
|
COMPILE(ret, "nil", node);
|
||||||
|
}
|
||||||
|
else if (nd_type(node) == NODE_SCOPE) {
|
||||||
/* iseq type of top, method, class, block */
|
/* iseq type of top, method, class, block */
|
||||||
set_local_table(iseq, node->nd_tbl);
|
set_local_table(iseq, node->nd_tbl);
|
||||||
set_arguments(iseq, ret, node->nd_args);
|
set_arguments(iseq, ret, node->nd_args);
|
||||||
|
@ -197,9 +200,6 @@ rb_iseq_compile(VALUE self, NODE *node)
|
||||||
else if (iseq->type == ISEQ_TYPE_DEFINED_GUARD) {
|
else if (iseq->type == ISEQ_TYPE_DEFINED_GUARD) {
|
||||||
COMPILE(ret, "defined guard", node);
|
COMPILE(ret, "defined guard", node);
|
||||||
}
|
}
|
||||||
else if (node == 0) {
|
|
||||||
COMPILE(ret, "nil", node);
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
rb_bug("unknown scope");
|
rb_bug("unknown scope");
|
||||||
}
|
}
|
||||||
|
|
2
eval.c
2
eval.c
|
@ -204,6 +204,8 @@ ruby_exec_internal(void)
|
||||||
{
|
{
|
||||||
int state;
|
int state;
|
||||||
VALUE val;
|
VALUE val;
|
||||||
|
|
||||||
|
if (!ruby_eval_tree) return 0;
|
||||||
PUSH_TAG();
|
PUSH_TAG();
|
||||||
if ((state = EXEC_TAG()) == 0) {
|
if ((state = EXEC_TAG()) == 0) {
|
||||||
GET_THREAD()->base_block = 0;
|
GET_THREAD()->base_block = 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче