aboutsummaryrefslogtreecommitdiffstats
path: root/hash.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove old warning aged nearly 8 yearsNobuyoshi Nakada2021-08-191-23/+0
|
* Stop force-recycling evacuated array [Bug #18065]Nobuyoshi Nakada2021-08-071-1/+0
|
* Using RBOOL macroS.H2021-08-021-16/+5
|
* Fix a comment [ci skip]Nobuyoshi Nakada2021-07-281-1/+1
|
* Remove useless castsNobuyoshi Nakada2021-07-221-2/+2
|
* Copy hash compare_by_identity setting in more casesJeremy Evans2021-07-151-8/+24
| | | | | | | | | | | | | | | | | | This makes the compare_by_identity setting always copied for the following methods: * except * merge * reject * select * slice * transform_values Some of these methods did not copy the setting, or only copied the setting if the receiver was not empty. Fixes [Bug #17757] Co-authored-by: Kenichi Kamiya <kachick1@gmail.com>
* [DOC] `Hash.[]` returns a hash with no default value/proc [ci skip]Nobuyoshi Nakada2021-07-041-4/+10
|
* Specify version to remove as bare numbersNobuyoshi Nakada2021-06-301-1/+1
|
* rb_warn_deprecated_to_remove_at [Feature #17432]Nobuyoshi Nakada2021-06-301-1/+1
| | | | | At compilation time with RUBY_DEBUG enabled, check if the removal version has been reached.
* Share freeze option handlingNobuyoshi Nakada2021-06-281-17/+3
|
* [DOC] fixed return value of ENV.clone [ci skip]Nobuyoshi Nakada2021-06-241-3/+3
|
* What's Here for Numeric and ComparableBurdette Lamar2021-06-211-2/+5
|
* Adjust styles [ci skip]Nobuyoshi Nakada2021-06-171-1/+1
| | | | | | | | | * --braces-after-func-def-line * --dont-cuddle-else * --procnames-start-lines * --space-after-for * --space-after-if * --space-after-while
* Make ENV.clone warn and ENV.dup raiseJeremy Evans2021-06-081-0/+63
| | | | | | | | | | | | | | ENV.dup returned a plain Object, since all of ENV's behavior is defined in ENV's singleton class. So using dup makes no sense. ENV.clone works and is used in some gems, but it doesn't do what the user expects, since modifying ENV.clone also modifies ENV. Add a deprecation warning pointing the user to use ENV.to_h instead. This also undefines some private initialize* methods in ENV, since they are not needed. Fixes [Bug #17767]
* Add static modifier to C function in hash.c (#3138)S.H2021-06-011-5/+5
| | | | | | | | | | | * add static modifier for rb_hash_reject_bang func * add static modifier for rb_hash_reject func * add static modifier for rb_hash_values_at func * add static modifier for rb_hash_assoc func * add static modifier for rb_hash_rassoc func
* Protoized old pre-ANSI K&R style declarations and definitionsNobuyoshi Nakada2021-05-071-1/+1
|
* Fix trivial -Wundef warningsBenoit Daloze2021-05-041-1/+1
| | | | | | * See [Feature #17752] Co-authored-by: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com>
* Correct documentation example on Hash#digNick Kelley2021-04-301-1/+1
| | | | | | | | | | 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}
* Fix wrong documentationromainsalles2021-04-231-1/+0
| | | It doesn't return `nil` but raises an exception, as explained a few lines after
* [Doc] Add Hash#value? into call-seq (#4293)Kenichi Kamiya2021-04-151-0/+3
|
* Force recycle intermediate collection in Hash#transform_keys! [Bug #17735]Kenichi Kamiya2021-03-281-0/+2
| | | | | | | * Force recycle intermediate hash * Force recycle intermediate array too https://github.com/ruby/ruby/pull/4329#issuecomment-808840718
* Hide an intermediate arrayNobuyoshi Nakada2021-03-281-2/+4
|
* Clear an intermediate hash [Bug #17735]Nobuyoshi Nakada2021-03-281-0/+1
|
* Keep non evaluated keys in `Hash#transform_keys!` [Bug #17735]Kenichi Kamiya2021-03-281-1/+5
|
* [Doc] Fix a typo around Hash#compare_by_identityKenichi Kamiya2021-03-221-2/+2
|
* Hash#transform_values! ensures receiver modifiable in block [Bug #17736]Kenichi Kamiya2021-03-221-0/+1
|
* Ensure the receiver hash modifiable before updating [Bug #17736]Nobuyoshi Nakada2021-03-211-40/+42
| | | | Close https://github.com/ruby/ruby/pull/4298
* Refactor hash aset callbackNobuyoshi Nakada2021-03-211-10/+3
|
* Refactor hash update callbacksNobuyoshi Nakada2021-03-201-20/+13
|
* Some Hash destructive methods ensure the receiver modifiable [Bug #17736]Kenichi Kamiya2021-03-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | 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
* Avoid rehashing in Hash#replace/dup/initialize_copy [Bug #16996]Marc-Andre Lafortune2021-03-181-1/+1
|
* Avoid rehashing in Hash#select/reject [Bug #16996]Marc-Andre Lafortune2021-03-181-25/+7
|
* Explicit references to EnumerableBurdetteLamar2021-01-201-1/+4
|
* Adds RDoc summary of Hash methods (#4045)Burdette Lamar2021-01-101-0/+123
| | | | * Adds RDoc summary of Hash methods
* Make any hash values fixable [Bug #17488]Nobuyoshi Nakada2020-12-311-8/+3
| | | | | | | 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>
* Adjusted indents [ci skip]Nobuyoshi Nakada2020-12-281-7/+7
|
* Optimize calls to `Kernel#hash` (#3987)Marc-André Lafortune2020-12-251-1/+5
| | | | This avoids recursive checks when the `hash` method of an object isn't specialized.
* Make `Hash#except` always return a HashMarc-Andre Lafortune2020-12-191-1/+2
| | | | [Feature #15822]
* Document Hash#transform_keys with hash. Amend NEWS [DOC] [ci skip]Marc-Andre Lafortune2020-12-151-14/+15
|
* Windows: Read ENV names and values as UTF-8 encoded Strings (#3818)Lars Kanis2020-12-081-62/+13
| | | | | | | | | | | | | | | | | | | | | * 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.
* Hash#index: delete卜部昌平2020-12-071-9/+0
| | | | Has been deprecated since 0c97c8e33584e6203bb09c08f92b63bd2cca8ae7.
* ENV.index: delete卜部昌平2020-12-021-14/+0
| | | | Has been deprecated since 373282f6656d3d3d989d261e7a95f8e81b5c9712.
* Fix USE_TRANSIENT_HEAP macro usage in hash.cCristian Greco2020-11-191-1/+1
| | | | Additionally fix some typos in transient heap.
* Make ENV.replace handle multiple environ entries with the same keyJeremy Evans2020-10-291-1/+4
| | | | | | | | | | | | | | | 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]
* Don't redefine #rb_intern over and over againStefan Stüben2020-10-211-5/+3
|
* [ci skip] Minor documentation fix.Cristian Greco2020-10-121-1/+1
| | | Add missing period.
* Add call-seq of [Feature #16274]Kazuhiro NISHIYAMA2020-09-291-0/+1
|
* Fix `ENV.except`'s docsbogdanvlviv2020-09-261-2/+2
|
* Make hash returned by Hash#transform_values not have a defaultJeremy Evans2020-09-211-0/+1
| | | | | | | This sets an explicit default of nil. There is probably a better approach of removing the default. Fixes [Bug #17181]
* Comply with guide for method doc: hash.c (#3466)Burdette Lamar2020-08-271-22/+3
| | | | | | | | | | Instance methods considered (most unchanged): - any - dig - \<= - \< - \>= - \> - to_proc