* load.c (rb_feature_provided): fixed for autoloading extension

library without suffix.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2009-09-09 06:46:31 +00:00
Родитель bc664b878c
Коммит 31a6d50863
3 изменённых файлов: 20 добавлений и 2 удалений

Просмотреть файл

@ -1,6 +1,12 @@
Wed Sep 9 15:46:28 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* load.c (rb_feature_provided): fixed for autoloading extension
library without suffix.
Wed Sep 9 15:24:32 2009 TAKANO Mitsuhiro (takano32) <tak@no32.tk>
* include/ruby/st.h : revert previous commit.
* ext/objspace/objspace.c : remove st_memsize declare.
Wed Sep 9 14:07:19 2009 TAKANO Mitsuhiro (takano32) <tak@no32.tk>

4
load.c
Просмотреть файл

@ -233,7 +233,7 @@ rb_feature_provided(const char *feature, const char **loading)
return FALSE;
}
}
if (rb_feature_p(feature, feature + strlen(feature), TRUE, FALSE, loading))
if (rb_feature_p(feature, 0, TRUE, FALSE, loading))
return TRUE;
return FALSE;
}
@ -473,7 +473,7 @@ search_required(VALUE fname, volatile VALUE *path, int safe_level)
OBJ_FREEZE(tmp);
if (rb_find_file_ext_safe(&tmp, loadable_ext + 1, safe_level)) {
ext = strrchr(ftptr = RSTRING_PTR(tmp), '.');
if (!rb_feature_p(ftptr, ext, Qfalse, Qtrue, &loading) || loading)
if (!rb_feature_p(ftptr, ext, FALSE, TRUE, &loading) || loading)
*path = tmp;
return 's';
}

Просмотреть файл

@ -0,0 +1,12 @@
require 'test/unit'
require_relative 'envutil'
class TestAutoload < Test::Unit::TestCase
def test_autoload_so
# Continuation is always available, unless excluded intentionally.
assert_in_out_err([], <<-INPUT, [], [])
autoload :Continuation, "continuation"
begin Continuation; rescue LoadError; end
INPUT
end
end