summaryrefslogtreecommitdiffstats
path: root/hash.c
Commit message (Collapse)AuthorAgeFilesLines
* * hash.c (ruby_setenv): get rid of crash in Solaris 8 and 10.nobu2009-11-141-1/+27
| | | | | | | [ruby-core:26668] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (ruby_setenv): use ruby_strdup().nobu2009-11-111-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (ruby_setenv): also set CRT workarea. ref [ruby-core:25010]usa2009-11-111-18/+18
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c: use RHASH_IFNONE but not ifnone directly.nobu2009-11-081-14/+15
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (default_proc_arity_check): new support function.matz2009-10-261-7/+15
| | | | | | | * hash.c (rb_hash_initialize): should do arity check as #default_proc=. [ruby-core:26281] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_set_default_proc): checks arity of defalt_procmatz2009-10-241-0/+6
| | | | | | of a Hash. [ruby-core:26087] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_f_getenv): use rb_filesystem_str_new_cstrnaruse2009-09-281-2/+2
| | | | | | | | | | | | | | | | | | | instead of rb_str_new2. ENV['PATH'].encoding should be Filesystem Encoding because its content is related to filesystem. see [ruby-dev:39393] * hash.c (env_fetch): ditto. * string.c (rb_filesystem_str_new): defined. * string.c (rb_filesystem_str_new_cstr): ditto. * include/ruby/intern.h (rb_filesystem_str_new): added. * include/ruby/intern.h (rb_filesystem_str_new_cstr): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_f_getenv, env_fetch): env string may be overwritten.nobu2009-09-281-3/+14
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (Hash#each): Fix documentation to reflect insertion order. A patch ↵marcandre2009-09-241-3/+2
| | | | | | by Run Paint Run Run [ruby-core:23644] and [ruby-core:21231] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (doc): doc fix, patch by Run Paint Run Run [ruby-core:23644]marcandre2009-09-241-6/+6
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (rb_exec_recursive_outer, rb_exec_recursive): Added method to ↵marcandre2009-09-151-5/+5
| | | | | | | | | | | | | | | | | | short-circuit to the outermost level in case of recursion * test/ruby/test_thread.rb (test_recursive_outer): Test for above * hash.c (rb_hash_hash): Return a sensible hash for in case of recursion [ruby-core:24648] * range.c (rb_range_hash): ditto * struct.c (rb_struct_hash): ditto * array.c (rb_array_hash): ditto * test/ruby/test_array.rb (test_hash2): test for above git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/st.h (st_hash_func): use st_index_t.nobu2009-09-081-5/+5
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_replace): should copy compare_by_identity status as well.matz2009-08-031-0/+4
| | | | | | [ruby-core:24728] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (Hash::[]): rdoc. patch by Marc-Andre Lafortune.yugui2009-07-221-7/+11
| | | | | | #1385. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * suppressed shorten-64-to-32 warnings.nobu2009-07-181-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_aset, recursive_hash): rejects recursive hash.nobu2009-07-161-1/+4
| | | | | | | [ruby-core:22921] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ENV is now locale encoding.naruse2009-07-121-1/+1
| | | | | | | | * hash.c (env_str_new): use rb_locale_str_new instead of rb_tainted_str_new. rb_locale_str_new set string locale encoding and tainted. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_hash): documentation fix. a patch frommatz2009-07-011-2/+2
| | | | | | | | | | | | | | Marc-Andre Lafortune. [ruby-core:23943] * object.c (rb_mod_cmp): ditto. * range.c (range_eq): ditto. * string.c (rb_str_partition, rb_str_rpartition): ditto. * struct.c (rb_struct_s_def): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_reject_bang): always check frozen status.matz2009-06-081-3/+5
| | | | | | | | | | | | | | [ruby-core:23715] * hash.c (rb_hash_update): ditto. * hash.c (rb_hash_reject_bang): call rb_hash_foreach() directly. * hash.c (rb_hash_update_i): call st_insert() directly. * hash.c (rb_hash_update_block_i): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (Init_Hash): made #to_s an alias to #inspect to reducenobu2009-05-291-13/+9
| | | | | | | | the result of recursive array. a patch from ujihisa at [ruby-core:23601]. [ruby-dev:38555] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_inspect): rescurses with defined ID to get ridnobu2009-05-291-8/+12
| | | | | | | of extra call. [ruby-core:23601] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * st.c (st_insert2): new function with processing new key,matz2009-05-271-3/+2
| | | | | | | | | e.g. copy. * hash.c (rb_hash_aset): use st_insert2() to reduce redundant st_lookup calls. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (rb_exec_recursive_paired): new function for propernobu2009-05-241-2/+2
| | | | | | | | | | | handling of recursive arrays. [EXPERIMENTAL] [ruby-core:23402] * array.c (rb_ary_equal, rb_ary_eql, rb_ary_cmp): use above. * hash.c (hash_equal): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c: 3rd arguemnt of rb_hash_foreach() is VALUE.nobu2009-05-091-30/+47
| | | | | | | * hash.c (rb_any_hash, recursive_hash): use VALUE for hash. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (hash_foreach_iter): fix for prototype.nobu2009-02-261-4/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (hash_i): use Murmurhash.akr2009-02-151-2/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (rb_hash_uint32, rb_hash_uint, rb_hash_start, rb_hash_end),mame2009-02-141-1/+1
| | | | | | | | | | | | include/ruby/intern.h: add Murmurhash API. [ruby-dev:37784] * complex.c (nucomp_hash), array.c (rb_ary_hash), time.c (time_hash), string.c (rb_str_hsah), object.c (rb_obj_hash), range.c (range_hash), struct.c (rb_struct_hash), hash.c (rb_any_hash), rational.c (nurat_hash): use Murmurhash. [ruby-dev:37784] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash): always return a fixnum value because a returnmame2009-02-141-5/+14
| | | | | | | | | | value of rb_hash may be used as a hash value itself and bignums have no unique VALUE. * test/ruby/test_hash.rb: add a test for above. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_any_hash): fixed performance issues with nil, true,matz2009-01-261-0/+3
| | | | | | | false as hash keys. a patch from Matthias Waechter. [ruby-core:21568] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_s_create): set nil as the value if assoc lengthnobu2009-01-111-3/+9
| | | | | | | is not enough. [ruby-core:21249] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_extract_encoding_option): "internal_encoding: nil"matz2008-12-191-2/+8
| | | | | | | | | | to specify no-transcoding. and other corner case fixed. [ruby-dev:37496] * hash.c (rb_hash_lookup2): new function to look-up hash with default value. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_aset): string key copying only happen if key ismatz2008-12-181-1/+1
| | | | | | | | an exact instance of String, not a subclass. based on a patch from Mike Gold <mike.gold.4433 at gmail.com> in [ruby-talk:322667]. [incompatible] [ruby-talk:322417] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@20860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/stringio/stringio.c (strio_write): should convert writingmatz2008-10-211-1/+1
| | | | | | | | | | | string to the encoding of the buffer. * hash.c (rb_any_hash): typo fixed. * ext/zlib/zlib.c (rb_gzwriter_write): oops, IO string conversion need to be done by to_s. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (open_key_args): should adjust argc, argv in structmatz2008-10-211-1/+1
| | | | | | foreach_arg. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c: Ruby no longer supports MacOS 9 or before.yugui2008-10-041-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * eval.c: ditto. * eval_intern.h: ditto. * ext/extmk.rb: ditto. * ext/tk/sample/tkextlib/treectrl/demo.rb: ditto. * ext/tk/stubs.c: ditto. * file.c: ditto. * hash.c: ditto. * include/ruby/defines.h: ditto. * ruby.c: ditto. * signal.c: ditto. * vm_core.h: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c: Ruby no longer supports MS-DOS.yugui2008-10-041-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * ext/sdbm/_sdbm.c: ditto. * ext/sdbm/sdbm.h: ditto. * gc.c: ditto. * hash.c: ditto. * include/ruby/defines.h: ditto. * include/ruby/util.h: ditto. * io.c: ditto. * process.c: ditto. * ruby.c: ditto. * strftime.c: ditto. * util.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * sprintf.c (rb_str_format): add %<name>s style named argumentmatz2008-09-301-2/+8
| | | | | | | | | | | | | | | support. a patch from Yusuke Endoh <mame at tsg.ne.jp> in [ruby-dev:35851]. * sprintf.c (rb_str_format): add gettext style named format (%{name}) support. inspired by [ruby-dev:35852]. * sprintf.c (GETNAMEARG): should raise KeyError exception when no named argument found. * hash.c (rb_hash_fetch): export fetch function. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_obj_is_proc): declaration moved for rdoc.akr2008-09-231-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19481 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (ENVMATCH, ENVNMATCH): reduced same code.nobu2008-09-231-29/+12
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * common.mk, hash.c: remove unused inclusion.ko12008-09-231-1/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (env_aset): allow nil value to remove an entry.matz2008-09-221-1/+2
| | | | | | [ruby-dev:36465] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * complex.c (nucomp_eql_p): new.tadf2008-09-151-4/+0
| | | | | | | | | | * complex.c (nucomp_hash): should use hash values of the elements. * rational.c (nurat_hash): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/signal.h: removed.ko12008-09-031-8/+1
| | | | | | | | | | | | | | | * common.mk, class.c, eval.c, eval_intern.h, file.c, gc.c, hash.c, io.c, process.c, signal.c: vm_core.h: ditto. Some unused external global variables are also removed. (rb_prohibit_interrupt, rb_trap_immediate, rb_trap_pending, rb_thread_critical) * ext/openssl/ossl_ssl.c, ext/openssl/ossl_x509store.c, ext/readline/readline.c, ext/socket/depend, ext/socket/socket.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (rb_intern_const): tiny optimization.nobu2008-08-161-0/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (set_default): fix rdoc. #441matz2008-08-141-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_set_default_proc): add new method. a patch frommatz2008-08-131-0/+33
| | | | | | Giuseppe Bilotta. #419 git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (rb_obj_untrusted): new method Object#untrusted?.shugo2008-08-131-2/+2
| | | | | | | | | | | | | | | (rb_obj_untrust): new method Object#untrust. (rb_obj_trust): new method Object#trust. * array.c, debug.c, time.c, include/ruby/ruby.h, re.c, variable.c, string.c, io.c, dir.c, vm_method.c, struct.c, class.c, hash.c, ruby.c, marshal.c: fixes for Object#untrusted?. * test/ruby/test_module.rb, test/ruby/test_array.rb, test/ruby/test_object.rb, test/ruby/test_string.rb, test/ruby/test_marshal.rb, test/ruby/test_hash.rb: added tests for Object#untrusted?. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (CONST_ID): constant ID cache for non-gcc.nobu2008-06-091-0/+2
| | | | | | | * *.c: no cache in init functions. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c, bignum.c, cont.c, dir.c, dln.c, encoding.c, enumerator.c,ko12008-06-081-1/+1
| | | | | | | | | | | | | | | | | | | enumerator.c (enumerator_allocate), eval_jump.c, file.c, hash.c, io.c, load.c, pack.c, proc.c, random.c, re.c, ruby.c, st.c, string.c, thread.c, thread_pthread.c, time.c, util.c, variable.c, vm.c, gc.c: allocated memory objects by xmalloc (ruby_xmalloc) should be freed by xfree (ruby_xfree). * ext/curses/curses.c, ext/dbm/dbm.c, ext/digest/digest.c, ext/gdbm/gdbm.c, ext/json/ext/parser/parser.c, ext/json/ext/parser/unicode.c, ext/openssl/ossl_cipher.c, ext/openssl/ossl_hmac.c, ext/openssl/ossl_pkey_ec.c, ext/sdbm/init.c, ext/strscan/strscan.c, ext/zlib/zlib.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (hash_i): make Hash#hash order insensitive.akr2008-06-071-5/+6
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e