summaryrefslogtreecommitdiff
path: root/hash.c
AgeCommit message (Collapse)Author
2021-05-07Protoized old pre-ANSI K&R style declarations and definitionsNobuyoshi Nakada
2021-05-04Fix trivial -Wundef warningsBenoit Daloze
* See [Feature #17752] Co-authored-by: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/4428
2021-04-30Correct documentation example on Hash#digNick Kelley
Fixes [Misc #17842]. The current documentation suggests that: {foo: {bar: {baz: 2}}}.dig(:foo, :bar) # => {:bar=>{:baz=>2}} when it should be: {foo: {bar: {baz: 2}}}.dig(:foo, :bar) # => {:baz=>2} Notes: Merged: https://github.com/ruby/ruby/pull/4441
2021-04-23Fix wrong documentationromainsalles
It doesn't return `nil` but raises an exception, as explained a few lines after Notes: Merged: https://github.com/ruby/ruby/pull/4403
2021-04-15[Doc] Add Hash#value? into call-seq (#4293)Kenichi Kamiya
Notes: Merged-By: zzak
2021-03-28Force recycle intermediate collection in Hash#transform_keys! [Bug #17735]Kenichi Kamiya
* Force recycle intermediate hash * Force recycle intermediate array too https://github.com/ruby/ruby/pull/4329#issuecomment-808840718 Notes: Merged-By: nobu <nobu@ruby-lang.org>
2021-03-28Hide an intermediate arrayNobuyoshi Nakada
2021-03-28Clear an intermediate hash [Bug #17735]Nobuyoshi Nakada
2021-03-28Keep non evaluated keys in `Hash#transform_keys!` [Bug #17735]Kenichi Kamiya
Notes: Merged: https://github.com/ruby/ruby/pull/4294 Merged-By: nobu <nobu@ruby-lang.org>
2021-03-22[Doc] Fix a typo around Hash#compare_by_identityKenichi Kamiya
Notes: Merged: https://github.com/ruby/ruby/pull/4303
2021-03-22Hash#transform_values! ensures receiver modifiable in block [Bug #17736]Kenichi Kamiya
Notes: Merged: https://github.com/ruby/ruby/pull/4302 Merged-By: nobu <nobu@ruby-lang.org>
2021-03-21Ensure the receiver hash modifiable before updating [Bug #17736]Nobuyoshi Nakada
Close https://github.com/ruby/ruby/pull/4298 Notes: Merged: https://github.com/ruby/ruby/pull/4299
2021-03-21Refactor hash aset callbackNobuyoshi Nakada
2021-03-20Refactor hash update callbacksNobuyoshi Nakada
2021-03-20Some Hash destructive methods ensure the receiver modifiable [Bug #17736]Kenichi Kamiya
refs: * https://bugs.ruby-lang.org/issues/17736 * https://github.com/ruby/ruby/pull/4296 This commit aims to cover following methods * Hash#select! * Hash#filter! * Hash#keep_if * Hash#reject! * Hash#delete_if I think these are not all. --- * Ensure the receiver is modifiable or not * Assert the receiver is not modified Notes: Merged: https://github.com/ruby/ruby/pull/4297
2021-03-18Avoid rehashing in Hash#replace/dup/initialize_copy [Bug #16996]Marc-Andre Lafortune
2021-03-18Avoid rehashing in Hash#select/reject [Bug #16996]Marc-Andre Lafortune
2021-01-20Explicit references to EnumerableBurdetteLamar
2021-01-10Adds RDoc summary of Hash methods (#4045)Burdette Lamar
* Adds RDoc summary of Hash methods Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-12-31Make any hash values fixable [Bug #17488]Nobuyoshi Nakada
As hnum is an unsigned st_index_t, the result of RSHIFT may not be in the fixable range. Co-authored-by: NeoCat <neocat@neocat.jp>
2020-12-28Adjusted indents [ci skip]Nobuyoshi Nakada
2020-12-25Optimize calls to `Kernel#hash` (#3987)Marc-André Lafortune
This avoids recursive checks when the `hash` method of an object isn't specialized. Notes: Merged-By: nurse <naruse@airemix.jp>
2020-12-19Make `Hash#except` always return a HashMarc-Andre Lafortune
[Feature #15822] Notes: Merged: https://github.com/ruby/ruby/pull/3929
2020-12-15Document Hash#transform_keys with hash. Amend NEWS [DOC] [ci skip]Marc-Andre Lafortune
2020-12-08Windows: Read ENV names and values as UTF-8 encoded Strings (#3818)Lars Kanis
* Windows: Read ENV names and values as UTF-8 encoded Strings Implements issue #12650: fix https://bugs.ruby-lang.org/issues/12650 This also removes the special encoding for ENV['PATH'] and some complexity in the code that is unnecessary now. * Windows: Improve readablity of getenv() encoding getenv() did use the expected codepage as an implicit parameter of the macro. This is mis-leading since include/ruby/win32.h has a different definition. Using the "cp" variable explicit (like the other function calls) makes it more readable and consistent. * Windows: Change external C-API macros getenv() and execv() to use UTF-8 They used to process and return strings with locale encoding, but since all ruby-internal spawn and environment functions use UTF-8, it makes sense to change the C-API equally. Notes: Merged-By: nurse <naruse@airemix.jp>
2020-12-07Hash#index: delete卜部昌平
Has been deprecated since 0c97c8e33584e6203bb09c08f92b63bd2cca8ae7.
2020-12-02ENV.index: delete卜部昌平
Has been deprecated since 373282f6656d3d3d989d261e7a95f8e81b5c9712.
2020-11-19Fix USE_TRANSIENT_HEAP macro usage in hash.cCristian Greco
Additionally fix some typos in transient heap. Notes: Merged: https://github.com/ruby/ruby/pull/3787
2020-10-29Make ENV.replace handle multiple environ entries with the same keyJeremy Evans
While it is expected that all environment keys are unique, that is not enforced. It is possible by manipulating environ directly you can call a process with an environment with duplicate keys. If ENV.replace was passed a hash with a key where environ had a duplicate for that key, ENV.replace would end up deleting the key from environ. The fix in this case is to not assume that the environment key list has unique keys, and continue processing the entire key list in keylist_delete. Fixes [Bug #17254] Notes: Merged: https://github.com/ruby/ruby/pull/3716
2020-10-21Don't redefine #rb_intern over and over againStefan Stüben
Notes: Merged: https://github.com/ruby/ruby/pull/3589
2020-10-12[ci skip] Minor documentation fix.Cristian Greco
Add missing period. Notes: Merged: https://github.com/ruby/ruby/pull/3650
2020-09-29Add call-seq of [Feature #16274]Kazuhiro NISHIYAMA
2020-09-26Fix `ENV.except`'s docsbogdanvlviv
Notes: Merged: https://github.com/ruby/ruby/pull/3595
2020-09-21Make hash returned by Hash#transform_values not have a defaultJeremy Evans
This sets an explicit default of nil. There is probably a better approach of removing the default. Fixes [Bug #17181] Notes: Merged: https://github.com/ruby/ruby/pull/3563
2020-08-27Comply with guide for method doc: hash.c (#3466)Burdette Lamar
Instance methods considered (most unchanged): - any - dig - \<= - \< - \>= - \> - to_proc Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-27Comply with guide for method doc: hash.c (#3465)Burdette Lamar
Instance methods considered (maybe not all changed): invert merge! merge assoc rassoc flatten compact compact! compare_by_identity compare_by_identity? Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-27Comply with guide for method doc: hash.c (#3464)Burdette Lamar
Instance methods considered (maybe not all changed): to_a inspect to_hash to_h keys values include? has_value? == eql? hash Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-27Comply with guide for method doc: hash.c (#3459)Burdette Lamar
Instance methods considered (some maybe not changed): clear []= replace length empty? each_value each_key each_pair transform_keys transform_keys! transform_values transform_values! Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-25Comply with guide for method doc: hash.c (#3454)Burdette Lamar
Methods reviewed (a few not modified): key delete shift delete_if reject! reject slice except values_at fetch_values select select! keep_if Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-25Comply with guide for method doc: hash.c (#3451)Burdette Lamar
Methods: ::new ::[] ::try_convert #rehash #[] #fetch #default #default= #default_proc #default_proc= Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-23Remove checks for self returned in array.c and hash.c examples (#3446)Burdette Lamar
Further compliance with https://github.com/ruby/ruby/blob/master/doc/method_documentation.rdoc#details-and-examples- Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-21Remove nil-return examples from hash.c (#3438)Burdette Lamar
* Remove nil-return examples from hash.c Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-20Partial compliance with doc/method_documentation.rdoc in hash.c (#3432)Burdette Lamar
Removes references to *-convertible thingies. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-19[DOC] Improve Hash's doc for missing keysMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3373
2020-08-19[DOC] Improve and simplify key egality documentation for HashMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3373
2020-08-19RHASH_TBL: is now ext-only卜部昌平
It seems almost no internal codes use RHASH_TBL any longer. Why not just eliminate it entirely, so that the macro can be purely ext-only. Notes: Merged: https://github.com/ruby/ruby/pull/3426
2020-08-14Fix links to Dig Methods document (#3421)Burdette Lamar
* Fix links to Dig Methods document * Fix links to Dig Methods document Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-13Adding doc/dig_methods.rdoc and links to it (#3416)Burdette Lamar
Adds a full discussion of #dig, along with links from Array, Hash, Struct, and OpenStruct. CSV::Table and CSV::Row are over in ruby/csv. I'll get to them soon. The art to the thing is to figure out how much (or how little) to say at each #dig. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-07-29Fix arity of Hash#to_proc [Bug #12671]Benoit Daloze
Notes: Merged: https://github.com/ruby/ruby/pull/3370
2020-06-29rb_hash_transient_heap_evacuate: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247