<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/hash.c, branch v3_4_9</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) 056497319658cbefe22351c6ec5c9fa6e4df72bd: [Backport #21357]</title>
<updated>2025-07-14T20:52:11+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-07-14T20:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1bdae3404b2918a8823d2fbac2f9e30f778aa1c9'/>
<id>1bdae3404b2918a8823d2fbac2f9e30f778aa1c9</id>
<content type='text'>
	[Bug #21357] Fix crash in Hash#merge with block

	Prior to https://github.com/ruby/ruby/commit/49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c
	the `optional_arg` passed from `rb_hash_update_block_i` to `tbl_update`
	was a hash value (i.e. a VALUE). After that commit it changed to an
	`update_call_args`.

	If the block sets or changes the value, `tbl_update_modify` will set the
	`arg.value` back to an actual value and we won't crash. But in the case
	where the block returns the original value we end up calling
	`RB_OBJ_WRITTEN` with the `update_call_args` which is not expected and
	may crash.

	`arg.value` appears to only be used to pass to `RB_OBJ_WRITTEN` (others
	who need the `update_call_args` get it from `arg.arg`), so I don't think
	it needs to be set to anything upfront. And `tbl_update_modify` will set
	the `arg.value` in the cases we need the write barrier.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #21357] Fix crash in Hash#merge with block

	Prior to https://github.com/ruby/ruby/commit/49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c
	the `optional_arg` passed from `rb_hash_update_block_i` to `tbl_update`
	was a hash value (i.e. a VALUE). After that commit it changed to an
	`update_call_args`.

	If the block sets or changes the value, `tbl_update_modify` will set the
	`arg.value` back to an actual value and we won't crash. But in the case
	where the block returns the original value we end up calling
	`RB_OBJ_WRITTEN` with the `update_call_args` which is not expected and
	may crash.

	`arg.value` appears to only be used to pass to `RB_OBJ_WRITTEN` (others
	who need the `update_call_args` get it from `arg.arg`), so I don't think
	it needs to be set to anything upfront. And `tbl_update_modify` will set
	the `arg.value` in the cases we need the write barrier.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c: [Backport #21333]</title>
<updated>2025-07-14T20:49:12+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-07-14T20:49:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=247b452af3ace2000d27475a0cb05ebecf3bb29c'/>
<id>247b452af3ace2000d27475a0cb05ebecf3bb29c</id>
<content type='text'>
	[Bug #21333] Prohibit hash modification inside Hash#update block
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #21333] Prohibit hash modification inside Hash#update block
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #21331] Prohibit hash modification during stlike loop</title>
<updated>2025-05-14T03:01:10+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-05-14T01:37:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a21b88a6081edaa73549caa285d4f0d26d1f8462'/>
<id>a21b88a6081edaa73549caa285d4f0d26d1f8462</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unused retval assignments</title>
<updated>2025-05-14T03:00:58+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-05-14T01:26:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=22f2047a3d8b02018269b49dbcd23b8101314009'/>
<id>22f2047a3d8b02018269b49dbcd23b8101314009</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[Bug #21331] Prohibit modification during stlike loop"</title>
<updated>2025-05-14T03:00:53+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-05-14T01:23:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fbcb3271857115596d9a2760bb117d196d7f57a9'/>
<id>fbcb3271857115596d9a2760bb117d196d7f57a9</id>
<content type='text'>
This reverts commit bb180b87b43c45e17ff49735a26d7a188d5c8396, which
caused "malloc during GC" error on wasm.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit bb180b87b43c45e17ff49735a26d7a188d5c8396, which
caused "malloc during GC" error on wasm.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) bb180b87b43c45e17ff49735a26d7a188d5c8396: [Backport #21331]</title>
<updated>2025-05-14T00:14:49+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-05-14T00:14:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=862480a316c014d2b4659b22cd12e311c0810105'/>
<id>862480a316c014d2b4659b22cd12e311c0810105</id>
<content type='text'>
	[Bug #21331] Prohibit modification during stlike loop
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #21331] Prohibit modification during stlike loop
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #21144] Win32: Use Windows time zone ID if TZ is not set</title>
<updated>2025-03-04T21:04:27+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-02-17T12:46:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d40c6cf7b606edb815adf7a8e9abe98f38a8f747'/>
<id>d40c6cf7b606edb815adf7a8e9abe98f38a8f747</id>
<content type='text'>
If the TZ environment variable is not set, the time zone names
retrieved from the system are localized for UI display and may vary
across editions and language packs for the same time zone.
Use the time zone IDs that are invariant across environments instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the TZ environment variable is not set, the time zone names
retrieved from the system are localized for UI display and may vary
across editions and language packs for the same time zone.
Use the time zone IDs that are invariant across environments instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Bug #20982] Put spaces in `ENV.inspect` results as well as `Hash`</title>
<updated>2025-02-14T05:43:19+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2024-12-26T06:01:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=24f48c83e7e851a6ca712fc7b498634da9a24789'/>
<id>24f48c83e7e851a6ca712fc7b498634da9a24789</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 19c39e4cfaa467e69b9848c9c5496d7f50d39c7f, d78ff6a767ca813ac5fa178dd7611f20a993c191: [Backport #20984]</title>
<updated>2025-02-14T05:29:23+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-02-14T05:29:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=270129fdcb923654d9741465ec26e179507e8c96'/>
<id>270129fdcb923654d9741465ec26e179507e8c96</id>
<content type='text'>
	[Bug #20984] ENV.inspect should be encoding aware

	[Bug #20984] Fix test with locale encoding
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	[Bug #20984] ENV.inspect should be encoding aware

	[Bug #20984] Fix test with locale encoding
</pre>
</div>
</content>
</entry>
<entry>
<title>[DOC] Fix output examples containing old Hash#inspect format</title>
<updated>2024-12-18T17:08:15+00:00</updated>
<author>
<name>tomoya ishida</name>
<email>tomoyapenguin@gmail.com</email>
</author>
<published>2024-12-18T17:08:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=477c505ac0d4d23a860ffafbb487f7598aa89ca3'/>
<id>477c505ac0d4d23a860ffafbb487f7598aa89ca3</id>
<content type='text'>
The inspect format was intentionally changed as an outcome of
[Bug #20433] [ruby-core:118668], but some documentation update
was missing, as [Bug #20962] pointed out. Update some output
examples that clearly use Hash#inspect.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The inspect format was intentionally changed as an outcome of
[Bug #20433] [ruby-core:118668], but some documentation update
was missing, as [Bug #20962] pointed out. Update some output
examples that clearly use Hash#inspect.
</pre>
</div>
</content>
</entry>
</feed>
