rb_method_entry_t::flags to make one word spare space.
Add some macros to access these flags.
* vm_method.c: use these macros.
* internal.h: define IMEMO_FL_USHIFT and IMEMO_FL_USER[0-4]
for T_IMEMO local flags.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/fake.rb.in: expanded macro result may have spaces
between tokens. [ruby-dev:49047] [Bug #11243]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
LDFLAGS during configure, observed on Solaris with GCC 4.6.
[Bug #11245]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_method_entry_t.
r50728 changed sharing `def's to isolating `def's
on alias and so on. However, this change conflicts
future improvement plan. So I change back to sharing approach.
* method.h: move rb_method_definition_t::flags to
rb_method_entry_t::attr::flags.
rb_method_entry_t::attr is union with VALUE because this field
should have same size of VALUE. rb_method_entry_t is T_IMEMO).
And also add the following access macros to it's fileds.
* METHOD_ENTRY_VISI(me)
* METHOD_ENTRY_BASIC(me)
* METHOD_ENTRY_SAFE(me)
* vm_method.c (rb_method_definition_addref): added instead of
rb_method_definition_clone().
Do not create new definition, but increment alias_count.
* class.c (clone_method): catch up this fix.
* class.c (method_entry_i): ditto.
* proc.c (mnew_internal): ditto.
* proc.c (mnew_missing): ditto.
* vm_eval.c: ditto.
* vm_insnhelper.c: ditto.
* vm_method.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
We want to test the IO::WaitWritable behavior, so silently
discarding Errno::EMSGSIZE prevents the test from being
effective.
[ruby-core:69466]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
We call memset to zero `mh' a few lines above anyways, making
explicitly zero-ing each field unnecessary.
Compilers optimize this code away anyways, but it still costs me
4 lines of my small terminal and even smaller attention span.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
parsed even on systems without HAVE_STRUCT_MSGHDR_MSG_CONTROL
to prevent SEGV caused by passing Qnil to RARRAY_LENINT and
to preserve behavior before r50776.
[Bug #11224] [ruby-core:69468] [Bug #11225] [ruby-core:69469]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
from long to rb_method_visibility_t.
* class.c (ins_methods_i): catch up this fix.
* class.c (method_entry_i): cast to st_data_t instead of `long'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_intern.h: move definition of rb_scope_visibility_t
to method.h.
* method.h: change rb_cref_t::scope_visi from VALUE to
rb_scope_visibility_t.
[Bug #11219]
* vm.c (vm_cref_new): accept rb_method_visibility_t directly.
* vm_insnhelper.c (rb_vm_rewrite_cref): don't use 0,
but METHOD_VISI_UNDEF.
* vm_method.c (rb_scope_visibility_set): don't need to use cast.
* vm_method.c (rb_scope_module_func_set): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/socket/ancdata.c (bsock_sendmsg_internal): avoid msg_control
ptr if msg_controllen is zero to fix portability problems.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Systems without HAVE_STRUCT_MSGHDR_MSG_CONTROL still need
controls to be nil for the check after argument parsing.
Note: not actually tested on a real system without msg_control
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
of limit from 1.5 to 2.0. It is ad-hoc fix to solve test failure
in travis-ci.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
avoid initializing struct with variables.
[Bug #11217]
* method.h: add a comment about it.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c (dirent_match): match short names only when FNM_SHORTNAME
flag is given, for the backward compatibility, and the new
behavior is often dangerous. [ruby-core:69435] [Bug #11206]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e