示例#1
0
文件: load.c 项目: scorpion007/ruby
void
rb_load_protect(VALUE fname, int wrap, int *state)
{
    int status;
    volatile VALUE path = 0;

    PUSH_TAG();
    if ((status = EXEC_TAG()) == 0) {
	path = file_to_load(fname);
    }
    POP_TAG();
    if (!status) status = rb_load_internal0(GET_THREAD(), path, wrap);
    if (state)
	*state = status;
}
示例#2
0
文件: load.c 项目: tenderlove/ruby
void
rb_load_protect(VALUE fname, int wrap, int *pstate)
{
    enum ruby_tag_type state;
    volatile VALUE path = 0;

    EC_PUSH_TAG(GET_EC());
    if ((state = EC_EXEC_TAG()) == TAG_NONE) {
	path = file_to_load(fname);
    }
    EC_POP_TAG();

    if (state == TAG_NONE) state = rb_load_internal0(GET_EC(), path, wrap);
    if (state != TAG_NONE) *pstate = state;
}
示例#3
0
文件: load.c 项目: scorpion007/ruby
void
rb_load(VALUE fname, int wrap)
{
    rb_load_internal(file_to_load(fname), wrap);
}