зеркало из https://github.com/github/ruby.git
vm_method.c: extract set_visibility
* vm_method.c (set_visibility): extract from rb_mod_public(), rb_mod_protected() and rb_mod_private(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
6f9f8d2ef7
Коммит
6f017366ad
31
ChangeLog
31
ChangeLog
|
@ -1,30 +1,7 @@
|
||||||
Thu May 30 19:47:42 2013 Yusuke Endoh <mame@tsg.ne.jp>
|
Fri May 31 11:58:24 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* vm_insnhelper.c (vm_callee_setup_keyword_arg,
|
* vm_method.c (set_visibility): extract from rb_mod_public(),
|
||||||
vm_callee_setup_arg_complex): consider a hash argument for keyword
|
rb_mod_protected() and rb_mod_private().
|
||||||
only when the number of arguments is more than the expected
|
|
||||||
mandatory parameters. [ruby-core:53199] [ruby-trunk - Bug #8040]
|
|
||||||
|
|
||||||
* test/ruby/test_keyword.rb: update a test for above.
|
|
||||||
|
|
||||||
Thu May 30 17:55:04 2013 Zachary Scott <zachary@zacharyscott.net>
|
|
||||||
|
|
||||||
* process.c: RDoc on Process.spawn
|
|
||||||
|
|
||||||
Thu May 30 00:08:14 2013 Koichi Sasada <ko1@atdot.net>
|
|
||||||
|
|
||||||
* gc.c (gc_profile_enable): rest_sweep() to finish last GC.
|
|
||||||
Profiling record is allocated at first of marking phase.
|
|
||||||
Enable at lazy sweeping may cause an error (SEGV).
|
|
||||||
|
|
||||||
Wed May 29 10:33:27 2013 Koichi Sasada <ko1@atdot.net>
|
|
||||||
|
|
||||||
* hash.c: fix WB bug.
|
|
||||||
(1) Hash's key also needs WB.
|
|
||||||
(2) callback parameter *key and *value of st_update() is not a
|
|
||||||
storage of st_table itself (only local variable). So that
|
|
||||||
OBJ_WRITE() is not suitable, especially for `!existing'.
|
|
||||||
OBJ_WRITTEN() is used instead of OBJ_WRITE().
|
|
||||||
|
|
||||||
Tue May 28 12:31:21 2013 Koichi Sasada <ko1@atdot.net>
|
Tue May 28 12:31:21 2013 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
|
@ -1448,7 +1425,7 @@ Sat May 4 04:13:27 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
|
||||||
|
|
||||||
Fri May 3 19:32:13 2013 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
|
Fri May 3 19:32:13 2013 Takeyuki FUJIOKA <xibbar@ruby-lang.org>
|
||||||
|
|
||||||
* lib/cgi/util.rb: All class methods modulized.
|
* lib/cgi/util.rb: All class methods moduleized.
|
||||||
We can use these methods like a function when "include CGI::Util".
|
We can use these methods like a function when "include CGI::Util".
|
||||||
[Feature #8354]
|
[Feature #8354]
|
||||||
|
|
||||||
|
|
40
vm_method.c
40
vm_method.c
|
@ -1290,6 +1290,19 @@ set_method_visibility(VALUE self, int argc, VALUE *argv, rb_method_flag_t ex)
|
||||||
rb_clear_cache_by_class(self);
|
rb_clear_cache_by_class(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
set_visibility(int argc, VALUE *argv, VALUE module, int visi)
|
||||||
|
{
|
||||||
|
secure_visibility(module);
|
||||||
|
if (argc == 0) {
|
||||||
|
SCOPE_SET(visi);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
set_method_visibility(module, argc, argv, visi);
|
||||||
|
}
|
||||||
|
return module;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* call-seq:
|
* call-seq:
|
||||||
* public -> self
|
* public -> self
|
||||||
|
@ -1305,14 +1318,7 @@ set_method_visibility(VALUE self, int argc, VALUE *argv, rb_method_flag_t ex)
|
||||||
static VALUE
|
static VALUE
|
||||||
rb_mod_public(int argc, VALUE *argv, VALUE module)
|
rb_mod_public(int argc, VALUE *argv, VALUE module)
|
||||||
{
|
{
|
||||||
secure_visibility(module);
|
return set_visibility(argc, argv, module, NOEX_PUBLIC);
|
||||||
if (argc == 0) {
|
|
||||||
SCOPE_SET(NOEX_PUBLIC);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
set_method_visibility(module, argc, argv, NOEX_PUBLIC);
|
|
||||||
}
|
|
||||||
return module;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1330,14 +1336,7 @@ rb_mod_public(int argc, VALUE *argv, VALUE module)
|
||||||
static VALUE
|
static VALUE
|
||||||
rb_mod_protected(int argc, VALUE *argv, VALUE module)
|
rb_mod_protected(int argc, VALUE *argv, VALUE module)
|
||||||
{
|
{
|
||||||
secure_visibility(module);
|
return set_visibility(argc, argv, module, NOEX_PROTECTED);
|
||||||
if (argc == 0) {
|
|
||||||
SCOPE_SET(NOEX_PROTECTED);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
set_method_visibility(module, argc, argv, NOEX_PROTECTED);
|
|
||||||
}
|
|
||||||
return module;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1364,14 +1363,7 @@ rb_mod_protected(int argc, VALUE *argv, VALUE module)
|
||||||
static VALUE
|
static VALUE
|
||||||
rb_mod_private(int argc, VALUE *argv, VALUE module)
|
rb_mod_private(int argc, VALUE *argv, VALUE module)
|
||||||
{
|
{
|
||||||
secure_visibility(module);
|
return set_visibility(argc, argv, module, NOEX_PRIVATE);
|
||||||
if (argc == 0) {
|
|
||||||
SCOPE_SET(NOEX_PRIVATE);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
set_method_visibility(module, argc, argv, NOEX_PRIVATE);
|
|
||||||
}
|
|
||||||
return module;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Загрузка…
Ссылка в новой задаче