* hash.c (rb_hash): always return a fixnum value because a return
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: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@25661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
was converted to a Bignum in calculating its hash.
[ruby-dev:39637]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@25660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
finalized objects and has no free objects. [ruby-dev:39201]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@24713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
a patch from coderrr at [ruby-core:23050]
* gc.c (obj_free): do not free cloned scope local variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* intern.h (Init_stack): make to call ruby_init_stack.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c, bignum.c, dir.c, enumerator.c, gc.c, io.c, numeric.c,
object.c, re.c, string.c, struct.c: Mixing two styles is not a
good thing. Stick with the K&R style in 1.8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* marshal.c (struct dump_arg, struct load_arg): added wrappers to mark
data entries. backport from trunk r13527,r13528,r13961,r16533.
[ruby-dev:36082]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@19078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
finalizer_table.
* gc.c (rb_gc_call_finalizer_at_exit): warns when could not invoke
finalizers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (gc_sweep): sets rb_thread_pending to run deferred finalizers.
* rubysig.h (CHECK_INTS): now checks rb_thread_pending even on
platforms where setitimer is not available. [ruby-core:18045]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
if it was frozen. clear all raised flags.
* eval.c (stack_check): leave clearing flag to rb_longjmp.
* eval.c (rb_thread_set_raised, rb_thread_reset_raised): use generic
flags.
* eval.c (Init_Proc), gc.c (Init_GC): freeze preallocated special exceptions.
* gc.c (rb_memerror): use thread raised flag instead of static flag,
and raise nomem_error without backtrace if failed to make backtrace.
[ruby-dev:34724]
* gc.c (ruby_xmalloc): increase malloc_increase only if malloc
succeeds. failed malloc size can be huge. it may increase
malloc_limit too big which cause less GC and memory full.
(ruby_xrealloc): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@17832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
backported from 1.9. a patch from Tadashi Saito
in [ruby-dev:34394] and bug#19000
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
__builtin_setjmp, _setjmp over setjmp and sigsetjmp.
[ruby-core:16023], [ruby-core:16086]
* configure.in (--with-setjmp-type): new option to override the
default rule in the above.
* eval.c (ruby_setjmp, ruby_longjmp), gc.c (rb_setjmp),
node.h (rb_jmpbuf_t): use RUBY_SETJMP, RUBY_LONGJMP and
RUBY_JMP_BUF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c, gc.c (setjmp): do not use _setjmp if sigsetjmp is available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
__builtin_frame_address(0) to avoid SEGV on SunOS 5.11 on x86 with
gcc (GCC) 3.4.3 (csl-sol210-3_4-20050802).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e