<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/vm_insnhelper.c, branch v2_0_0_451</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) r44527: [Backport #9377]</title>
<updated>2014-02-19T16:58:53+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2014-02-19T16:58:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4bcae05f01915183e7bc525c0f2e4682a0ec40e0'/>
<id>4bcae05f01915183e7bc525c0f2e4682a0ec40e0</id>
<content type='text'>
	* vm_insnhelper.c (vm_search_super_method): when super called in a
	  bound UnboundMethod generated from a module, no superclass is
	  found since the current defined class is the module, then call
	  method_missing in that case.  [ruby-core:59619] [Bug #9377]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@45051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_insnhelper.c (vm_search_super_method): when super called in a
	  bound UnboundMethod generated from a module, no superclass is
	  found since the current defined class is the module, then call
	  method_missing in that case.  [ruby-core:59619] [Bug #9377]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@45051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) r44931: [Backport #9452]</title>
<updated>2014-02-15T06:53:01+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2014-02-15T06:53:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ab530f056c7e45aa711a736790fb448bbdce19e7'/>
<id>ab530f056c7e45aa711a736790fb448bbdce19e7</id>
<content type='text'>
	* vm_insnhelper.c (vm_call_method): should check ci-&gt;me-&gt;flag of
	  a refining method in case the method is private.
	  [ruby-core:60111] [Bug #9452]

	* vm_method.c (make_method_entry_refined): set me-&gt;flag of a refined
	  method entry to NOEX_PUBLIC in case the original method is private
	  and it is refined as a public method.  The original flag is stored
	  in me-&gt;def-&gt;body.orig_me, so it's OK to make a refined method
	  entry public.  [ruby-core:60111] [Bug #9452]

	* test/ruby/test_refinement.rb: related tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@44967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_insnhelper.c (vm_call_method): should check ci-&gt;me-&gt;flag of
	  a refining method in case the method is private.
	  [ruby-core:60111] [Bug #9452]

	* vm_method.c (make_method_entry_refined): set me-&gt;flag of a refined
	  method entry to NOEX_PUBLIC in case the original method is private
	  and it is refined as a public method.  The original flag is stored
	  in me-&gt;def-&gt;body.orig_me, so it's OK to make a refined method
	  entry public.  [ruby-core:60111] [Bug #9452]

	* test/ruby/test_refinement.rb: related tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@44967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 43913: [Backport #8872] [Backport #9175]</title>
<updated>2014-01-23T12:40:52+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2014-01-23T12:40:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6136b992d4d4df727fcdb50ef07194a50bac9bd9'/>
<id>6136b992d4d4df727fcdb50ef07194a50bac9bd9</id>
<content type='text'>
	* vm_insnhelper.c (check_match): Fix SEGV with VM_CHECKMATCH_TYPE_CASE
	  and class of `pattern` has `method_missing`
	  [Bug #8882] [ruby-core:58606]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@44695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_insnhelper.c (check_match): Fix SEGV with VM_CHECKMATCH_TYPE_CASE
	  and class of `pattern` has `method_missing`
	  [Bug #8882] [ruby-core:58606]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@44695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 43334: [Backport #9030]</title>
<updated>2013-10-17T17:34:22+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-10-17T17:34:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=57b26f83051d13442ffa6269230ea9d5803b6d1b'/>
<id>57b26f83051d13442ffa6269230ea9d5803b6d1b</id>
<content type='text'>
	* vm_insnhelper.c (vm_call_method): set ci-&gt;me to 0 when the
	  original method of a refined method is undef to avoid SEGV.

	* vm_method.c (rb_method_entry_without_refinements): return 0 when
	  the original method of a refined method is undef to avoid SEGV.

	* test/ruby/test_refinement.rb: related test.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@43345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_insnhelper.c (vm_call_method): set ci-&gt;me to 0 when the
	  original method of a refined method is undef to avoid SEGV.

	* vm_method.c (rb_method_entry_without_refinements): return 0 when
	  the original method of a refined method is undef to avoid SEGV.

	* test/ruby/test_refinement.rb: related test.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@43345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 42782,42799: [Backport #8902]</title>
<updated>2013-09-13T14:01:07+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-09-13T14:01:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4c2f2ffc02c9a8bff5750d754c5a6e8502ae3a64'/>
<id>4c2f2ffc02c9a8bff5750d754c5a6e8502ae3a64</id>
<content type='text'>
	* vm_insnhelper.c (vm_search_super_method): use ci-&gt;argc instead of
	  ci-&gt;orig_argc. ci-&gt;argc can be changed by splat arguments.
	  [ruby-list:49575]
	  This fix should be applied to Ruby 2.0.0 seriese.

	* test/ruby/test_super.rb: add a test for above.

	* numeric.c (NUM_STEP_SCAN_ARGS): On second thought, keep

	* internal.h (bit_length): Add casts to fix compilation error with
	  This fix should be applied to Ruby 2.0.0 series.
	  numeric literal, for the backward compatibility.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_insnhelper.c (vm_search_super_method): use ci-&gt;argc instead of
	  ci-&gt;orig_argc. ci-&gt;argc can be changed by splat arguments.
	  [ruby-list:49575]
	  This fix should be applied to Ruby 2.0.0 seriese.

	* test/ruby/test_super.rb: add a test for above.

	* numeric.c (NUM_STEP_SCAN_ARGS): On second thought, keep

	* internal.h (bit_length): Add casts to fix compilation error with
	  This fix should be applied to Ruby 2.0.0 series.
	  numeric literal, for the backward compatibility.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 42869: [Backport #8872]</title>
<updated>2013-09-12T15:54:50+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-09-12T15:54:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3041c43df15bd895c41860930332579b80f7d68e'/>
<id>3041c43df15bd895c41860930332579b80f7d68e</id>
<content type='text'>
	* vm_eval.c (vm_call0): fix prototype, the id parameter should be of
	  type ID, not VALUE

	* vm_insnhelper.c (check_match): the rb_funcall family of functions
	  does not care about refinements. We need to use
	  rb_method_entry_with_refinements instead to call === with
	  refinements. Thanks to Jon Conley for reporting this bug.
	  [ruby-core:57051] [Bug #8872]

	* test/ruby/test_refinement.rb: add test


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_eval.c (vm_call0): fix prototype, the id parameter should be of
	  type ID, not VALUE

	* vm_insnhelper.c (check_match): the rb_funcall family of functions
	  does not care about refinements. We need to use
	  rb_method_entry_with_refinements instead to call === with
	  refinements. Thanks to Jon Conley for reporting this bug.
	  [ruby-core:57051] [Bug #8872]

	* test/ruby/test_refinement.rb: add test


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 42724: [Backport #8238]</title>
<updated>2013-08-29T12:50:38+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-08-29T12:50:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6588ba877a54e42a3f5d27b44d7ee500fd868243'/>
<id>6588ba877a54e42a3f5d27b44d7ee500fd868243</id>
<content type='text'>
	* vm_insnhelper.c (vm_call_method): a method entry refers the based
	  class/module, so should search superclass from the origin i-class
	  where the entry belongs to, to get rid of infinite loop when zsuper
	  in a prepended class/module.  [ruby-core:54105] [Bug #8238]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_insnhelper.c (vm_call_method): a method entry refers the based
	  class/module, so should search superclass from the origin i-class
	  where the entry belongs to, to get rid of infinite loop when zsuper
	  in a prepended class/module.  [ruby-core:54105] [Bug #8238]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 41389: [Backport #8540]</title>
<updated>2013-06-18T19:40:13+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-06-18T19:40:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f56c0c063174caa417ca1e54d59d76c266026bbf'/>
<id>f56c0c063174caa417ca1e54d59d76c266026bbf</id>
<content type='text'>
	* vm_insnhelper.c (vm_call_method): ensure methods of type
	  VM_METHOD_TYPE_ATTR_SET are called with 1 argument

	* test/ruby/test_module.rb (class TestModule): add test
	[ruby-core:55543] [Bug #8540]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_insnhelper.c (vm_call_method): ensure methods of type
	  VM_METHOD_TYPE_ATTR_SET are called with 1 argument

	* test/ruby/test_module.rb (class TestModule): add test
	[ruby-core:55543] [Bug #8540]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 41343,41360,41386: [Backport #8531]</title>
<updated>2013-06-18T18:40:31+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-06-18T18:40:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fff67882f9ed1436a32fd9120158d274c4515234'/>
<id>fff67882f9ed1436a32fd9120158d274c4515234</id>
<content type='text'>
	test/ruby/test_symbol.rb: tests for [Bug #8531]
	* include/ruby/ruby.h, vm_eval.c (rb_funcall_with_block):
	  new function to invoke a method with a block passed
	  as an argument.

	* string.c (sym_call): use the above function to avoid
	  a block sharing. [ruby-dev:47438] [Bug #8531]

	* vm_insnhelper.c (vm_yield_with_cfunc): don't set block
	  in the frame.

	* test/ruby/test_symbol.rb (TestSymbol#test_block_given_to_proc):
	  run related tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	test/ruby/test_symbol.rb: tests for [Bug #8531]
	* include/ruby/ruby.h, vm_eval.c (rb_funcall_with_block):
	  new function to invoke a method with a block passed
	  as an argument.

	* string.c (sym_call): use the above function to avoid
	  a block sharing. [ruby-dev:47438] [Bug #8531]

	* vm_insnhelper.c (vm_yield_with_cfunc): don't set block
	  in the frame.

	* test/ruby/test_symbol.rb (TestSymbol#test_block_given_to_proc):
	  run related tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 41019,41020,41021,41041,41045,41057: [Backport #8463]</title>
<updated>2013-06-12T15:03:22+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-06-12T15:03:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1135cc3596e301495d2fa2230cd3411fd1f516a5'/>
<id>1135cc3596e301495d2fa2230cd3411fd1f516a5</id>
<content type='text'>
	vm_insnhelper.c: add comments

	* vm_insnhelper.c (vm_yield_setup_block_args): break a long line and
  add comments.  remove useless code.
	* vm_insnhelper.c (vm_yield_setup_block_args): split single parameter
	  if any keyword arguments exist, and then extract keyword arguments.
	  [ruby-core:55203] [Bug #8463]

	* compile.c (iseq_set_arguments): not a simple single argument if any
	  keyword arguments exist.  [ruby-core:55203] [Bug #8463]

	* vm_insnhelper.c (vm_yield_setup_block_args): partially revert r41019.
	  The code is not useless.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	vm_insnhelper.c: add comments

	* vm_insnhelper.c (vm_yield_setup_block_args): break a long line and
  add comments.  remove useless code.
	* vm_insnhelper.c (vm_yield_setup_block_args): split single parameter
	  if any keyword arguments exist, and then extract keyword arguments.
	  [ruby-core:55203] [Bug #8463]

	* compile.c (iseq_set_arguments): not a simple single argument if any
	  keyword arguments exist.  [ruby-core:55203] [Bug #8463]

	* vm_insnhelper.c (vm_yield_setup_block_args): partially revert r41019.
	  The code is not useless.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
</feed>
