nobu
4a43f9203b
* st.c: refactor packed entries using structs.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-07 10:37:40 +00:00
nobu
cf1a22fdf9
* st.c (st_update): table can be unpacked in the callback.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-07 05:52:15 +00:00
nobu
97c3c98762
* st.c (st_foreach): should not yield same pair when checking
...
after unpacking.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-07 05:29:20 +00:00
nobu
e8590143a0
* st.c (add_packed_direct): ditto.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-17 02:40:42 +00:00
nobu
270ac46a7c
* st.c (do_hash): it's the time to remove cast to unsigned int.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-17 01:54:50 +00:00
naruse
84f204046b
* st.c (unpack_entries): Fix r34310: on unpacking, the position of
...
a hash must be do_hash-ed value.
* st.c (add_packed_direct): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-16 22:38:05 +00:00
shyouhei
d3f8488b1c
st optimize st_insert
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-15 15:46:44 +00:00
shyouhei
9ed8c1f15e
st refactor add_packed_direct a bit
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-15 15:46:41 +00:00
shyouhei
638f696b6e
st macroses for allocation
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-15 15:46:37 +00:00
shyouhei
cada5343a6
st macroses for packed table
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-15 15:46:34 +00:00
shyouhei
978a4ef154
st use function instead of macro
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-15 15:46:30 +00:00
nobu
2f6d8bdc94
* st.c (st_update): new function to lookup the given key and
...
update the value. [ruby-dev:44998]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-27 13:04:30 +00:00
nobu
12c497dcf6
* hash.c (identhash): share with type_numhash.
...
* st.c (st_hashtype_num): rename from type_numhash.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-18 14:28:58 +00:00
nobu
e8ab94ede0
* regint.h (PLATFORM_UNALIGNED_WORD_ACCESS): Power PC does not
...
allow unaligned word access.
* st.c (UNALIGNED_WORD_ACCESS): x86_64 allows unaligned word
access as well as i386.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-14 16:51:29 +00:00
nobu
4a42b101a9
* st.c (st_foreach): check if unpacked.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-01-27 14:30:00 +00:00
akr
095c2deca0
* st.c: parenthesize macro arguments.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-31 01:28:41 +00:00
nobu
537d7ff140
* st.c (MurmurMagic): get rid of literal overflow.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-12 15:18:22 +00:00
akr
8fd5bf0758
* st.c (st_foreach): don't access ptr->hash after func call.
...
It may access freed area.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-15 13:45:52 +00:00
nobu
255578c7b5
* include/ruby/st.h (SIZEOF_ST_INDEX_T): moved from st.c for
...
Init_RandomSeed().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-04 07:06:13 +00:00
nobu
9d93bc2b0b
* st.c (unpack_entries): fixed type.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-31 01:17:27 +00:00
wanabe
3e946fe301
* st.c (unpack_entries): save table->bins and never change the table
...
during unpacking. Because st_insert() may cause GC and refer the
table, i.e. st_foreach(). [Bug #2196 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-16 15:12:31 +00:00
nobu
f2103ee4a9
* st.c: moved murmur hash from string.c. [ruby-dev:39376]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-26 14:29:13 +00:00
nobu
25f43f4ab1
* st.c (COLLISION): improved collision log feature.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-26 08:53:15 +00:00
nobu
fe92b9a75b
* st.c (st_table_entry, st_get_key): use st_index_t.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-22 07:34:35 +00:00
nobu
78ab4258ff
* st.c (st_free_table): constified.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09 04:10:42 +00:00
nobu
e6dd856d73
* st.c (st_init_*table_with_size): use st_index_t.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-08 13:18:13 +00:00
nobu
31b7ae00c0
* include/ruby/st.h (st_hash_func): use st_index_t.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-08 13:10:04 +00:00
nobu
355e0f4efd
* st.c (st_delete_safe): deals with packed entries.
...
[ruby-core:25080]
* st.c (st_cleanup_safe): ditto. [ruby-core:25081]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-24 07:36:02 +00:00
ko1
af0429b54e
* st.c, include/ruby/st.h (st_memsize): added. This function returns
...
the memory usage of st_talbe.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-16 22:03:12 +00:00
matz
844a6890c6
* st.c (st_insert2): new function with processing new key,
...
e.g. copy.
* hash.c (rb_hash_aset): use st_insert2() to reduce redundant
st_lookup calls.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-27 15:56:14 +00:00
nobu
7cdc73235a
* st.c: use st_index_t for indexes instead of int.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-12 08:56:31 +00:00
mame
f64018b111
* include/ruby/st.h, st.c: order entries by a linked list instead of
...
a loop to fix iteration miss when hash is modified during iteration.
[ruby-dev:37910]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-08 14:34:13 +00:00
nobu
845103b751
* cont.c (rb_fiber_current), dln.c (dln_print_undef, dln_undefined),
...
eval.c (rb_iterator_p, rb_need_block), load.c: (Init_load), ruby.c
(uscore_get, rb_f_chop), st.c (stat_col), signal.c
(rb_signal_buff_size, ruby_sig_finalize), thread.c
(rb_thread_sleep_forever, rb_thread_sleep_deadly, rb_thread_alone):
protoized.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-01 12:51:44 +00:00
mame
b11b2b498c
* st.c (new_size): raise RuntimeError when st_table is too big.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-18 10:44:09 +00:00
ko1
72ba13aa8e
* array.c, bignum.c, cont.c, dir.c, dln.c, encoding.c, enumerator.c,
...
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@17017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-08 10:01:40 +00:00
mame
eef10d71dd
* st.c (st_reverse_foreach): comment out unused function.
...
* util.c (dtoa): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-05 12:47:48 +00:00
nobu
e615e3ce30
* error.c (builtin_types), signal.c (siglist), st.c (primes),
...
struct.c (ref_func), time.c (months): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-26 08:30:22 +00:00
akr
e3e49960e0
abolish warnings by previous change.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-01 13:19:21 +00:00
akr
041e829127
* include/ruby/encoding.h (rb_isascii): defined.
...
(rb_isalnum): ditto.
(rb_isalpha): ditto.
(rb_isblank): ditto.
(rb_iscntrl): ditto.
(rb_isdigit): ditto.
(rb_isgraph): ditto.
(rb_islower): ditto.
(rb_isprint): ditto.
(rb_ispunct): ditto.
(rb_isspace): ditto.
(rb_isupper): ditto.
(rb_isxdigit): ditto.
(rb_tolower): ditto.
(rb_toupper): ditto.
* include/ruby/st.h (st_strcasecmp): declared.
(st_strncasecmp): ditto.
* st.c (type_strcasehash): use st_strcasecmp instead of strcasecmp.
(st_strcasecmp): defined.
(st_strncasecmp): ditto.
* include/ruby/ruby.h: include include/ruby/encoding.h.
(ISASCII): use rb_isascii.
(ISPRINT): use rb_isprint.
(ISSPACE): use rb_isspace.
(ISUPPER): use rb_isupper.
(ISLOWER): use rb_islower.
(ISALNUM): use rb_isalnum.
(ISALPHA): use rb_isalpha.
(ISDIGIT): use rb_isdigit.
(ISXDIGIT): use rb_isxdigit.
(TOUPPER): defined.
(TOLOWER): ditto.
(STRCASECMP): ditto.
(STRNCASECMP): ditto.
* dir.c, encoding.c, file.c, hash.c, process.c, ruby.c, time.c,
transcode.c, ext/readline/readline.c: use locale insensitive
functions. [ruby-core:14662]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-01 12:24:04 +00:00
nobu
efed292c43
* load.c (rb_feature_p): returns loading path name too.
...
* load.c (search_required): returns path too if feature is being
loaded. [ruby-dev:32048] [TODO: refactoring]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-24 08:06:16 +00:00
nobu
8b6cb6994c
* common.mk (ruby.imp): fix for circular dependency. a patch from
...
Yutaka Kanemoto <kinpoco AT gmail.com> in [ruby-dev:32590].
* regint.h, st.c, ext/json/ext/generator/generator.c: suppress
warnings on AIX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-14 04:47:57 +00:00
nobu
5daecbc0e1
* encoding.c (rb_enc_alias, rb_enc_find_index): changed
...
enc_table_alias to a name-to-index hash.
* encoding.c (rb_enc_init): use upper case names for aliases to use as
constant names.
* encoding.c (enc_find): allow symbols.
* encoding.c (Init_Encoding): define encoding constants.
* st.c (strcasehash): fix wrong code range condition.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-16 21:18:09 +00:00
nobu
c351afc372
* encoding.c (rb_enc_alias): allow encodings multiple aliases.
...
* encoding.c (rb_enc_find_index): search the encoding which has the
given name and return its index if found, or -1.
* st.c (type_strcasehash): case-insensitive string hash type.
* string.c (rb_str_force_encoding): force encoding of self. this name
comes from [ruby-dev:31894] by Martin Duerst. [ruby-dev:31744]
* include/ruby/encoding.h (rb_enc_find_index, rb_enc_associate_index):
prototyped.
* include/ruby/encoding.h (rb_enc_isctype): direct interface to ctype.
* include/ruby/st.h (st_init_strcasetable): prototyped.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-28 19:27:10 +00:00
nobu
9c6ff18f6c
* st.c (hash_32a.c): reverted the original keywords.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-20 18:48:19 +00:00
nobu
d4cbf95002
* st.c (st_numcmp, st_numhash): use st_data_t instead of long, because
...
the former may be larger than the latter.
* include/ruby/st.h (CHAR_BIT): get rid of magic number.
* include/ruby/st.h (struct st_table): num_entries never exceed
num_bins.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-01 02:14:40 +00:00
akr
167358d000
* include/ruby/st.h (struct st_table): add entries_packed 1-bit
...
bitfield. decrease num_bins 1-bit.
* st.c: pack numhash which have 5 or less entries in bins.
(st_init_table_with_size): setup entries_packed flag.
(st_clear): support packed mode.
(st_lookup): ditto.
(st_insert): ditto.
(st_add_direct): ditto.
(st_copy): ditto.
(st_delete): ditto.
(st_foreach): ditto.
(st_reverse_foreach): ditto.
(unpack_entries): new function for converting to unpacked mode.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-29 02:36:54 +00:00
nobu
1ad3f7f582
* st.c (st_clear): reset num_entries too.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-21 06:00:25 +00:00
nobu
1be6cc2388
* st.c (rehash): suppress warnings.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-21 04:51:54 +00:00
nobu
be4fc7941b
* st.c (struct st_table_entry): add new members, fore and back, to
...
iterate in inserted order.
* include/ruby/st.h (struct st_table): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-21 04:43:51 +00:00
nobu
ba563e4a41
* include/ruby/st.h, st.c (st_init_table, st_init_table_with_size):
...
constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-05 01:06:49 +00:00