mrkn
467c9ec3b7
* ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Fix the inserting points
...
of RB_GC_GUARDs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 05:54:05 +00:00
mrkn
4131c29f87
* ext/bigdecimal/bigdecimal.c: Fix indentation.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 05:50:34 +00:00
mrkn
b6f664686e
* ext/bigdecimal/bigdecimal.c (VpAlloc): Fix the expr to adjust the size
...
of the digit array.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 12:42:01 +00:00
mrkn
ff3e585014
* ext/bigdecimal/bigdecimal.c (BigDecimal_sqrt): Fix the precision of
...
the result BigDecimal of sqrt.
[Bug #5266 ] [ruby-dev:44450]
* test/bigdecimal/test_bigdecimal.rb: add tests for the above changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 12:37:46 +00:00
ko1
c5e08b764e
* add RUBY_TYPED_FREE_IMMEDIATELY to data types which only use
...
safe functions during garbage collection such as xfree().
On default, T_DATA objects are freed at same points as fianlizers.
This approach protects issues such as reported by [ruby-dev:35578].
However, freeing T_DATA objects immediately helps heap usage.
Most of T_DATA (in other words, most of dfree functions) are safe.
However, we turned off RUBY_TYPED_FREE_IMMEDIATELY by default
for safety.
* cont.c: ditto.
* dir.c: ditto.
* encoding.c: ditto.
* enumerator.c: ditto.
* error.c: ditto.
* file.c: ditto.
* gc.c: ditto.
* io.c: ditto.
* iseq.c: ditto.
* marshal.c: ditto.
* parse.y: ditto.
* proc.c: ditto.
* process.c: ditto.
* random.c: ditto.
* thread.c: ditto.
* time.c: ditto.
* transcode.c: ditto.
* variable.c: ditto.
* vm.c: ditto.
* vm_backtrace.c: ditto.
* vm_trace.c: ditto.
* ext/bigdecimal/bigdecimal.c: ditto.
* ext/objspace/objspace.c: ditto.
* ext/stringio/stringio.c: ditto.
* ext/strscan/strscan.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-29 11:16:54 +00:00
zzak
8603fdcc62
* ext/bigdecimal/bigdecimal.c: [DOC] several fixes by @chastell
...
This includes fixing the capitalization of Infinity, return value of
example "BigDecimal.new('NaN') == 0.0", and code style in example.
[Fixes GH-398] https://github.com/ruby/ruby/pull/398
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-26 13:13:59 +00:00
nobu
3f78d84661
Eliminate less-than-zero checks for unsigned variables
...
* ext/bigdecimal/bigdecimal.c, ext/digest/md5/md5.c,
ext/json/fbuffer/fbuffer.h, ext/json/generator/generator.c:
Eliminate less-than-zero checks for unsigned variables.
According to section 4.1.5 of C89 standard, size_t is an unsigned
type. These checks were found with 'cppcheck' static analysis tool.
[ruby-core:57117] [Feature #8890 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-12 13:37:11 +00:00
charliesome
685f91236c
* ext/bigdecimal/bigdecimal.c (BigDecimal_save_rounding_mode): fix typo.
...
Fixes GH-343. Patch by @jgarber.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-26 14:54:36 +00:00
mrkn
448c66c516
* ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Fix for the cases when
...
the argument x is not a BigDecimal.
This change is based on the patch made by Garth Snyder.
[Fix GH-332] https://github.com/ruby/ruby/pull/332
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-25 12:29:00 +00:00
akr
a461f2f8bb
* ext/bigdecimal: Workaround fix for bigdecimal test failures caused
...
by [ruby-dev:47413] [Feature #8509 ]
* ext/bigdecimal/bigdecimal.h (BDIGIT): Make it independent from the
definition for bignum.c.
(SIZEOF_BDIGITS): Ditto.
(BDIGIT_DBL): Ditto.
(BDIGIT_DBL_SIGNED): Ditto.
(PRI_BDIGIT_PREFIX): Undefine the definition.
(PRI_BDIGIT_DBL_PREFIX): Ditto.
* ext/bigdecimal/bigdecimal.c (RBIGNUM_ZERO_P): Use rb_bigzero_p.
(bigzero_p): Removed.
(is_even): Use rb_big_pack.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-20 15:42:23 +00:00
zzak
54a22fb8c7
* ext/bigdecimal/bigdecimal.c: Update overview formatting of headers
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-15 01:20:27 +00:00
zzak
51c43dba6a
* ext/bigdecimal/*: improve documentation, nodoc samples with @mrkn
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-13 14:44:25 +00:00
mrkn
1db209763a
* ext/bigdecimal/bigdecimal.c (BigDecimal_power): use rb_dbl2big
...
to convert a double value to a Bignum.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 16:59:09 +00:00
zzak
2439bc9e69
* ext/bigdecimal/bigdecimal.c: Formatting for BigMath [Fixes GH-306]
...
Based on a patch by @eLobato.
* ext/bigdecimal/lib/bigdecimal/math.rb: ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-19 21:00:43 +00:00
ktsj
edb98f8b91
fix typos. Patch by k_takata.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-19 03:10:21 +00:00
akr
3f9e0e43c3
* ext/bigdecimal/bigdecimal.c (VpCtoV): Initialize a local variable
...
even when overflow.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-10 08:39:53 +00:00
akr
fa9b5bf223
* bignum.c (rb_ll2big): Don't overflow on signed integer negation.
...
* ext/bigdecimal/bigdecimal.c (MUL_OVERFLOW_SIGNED_VALUE_P): New
macro.
(AddExponent): Don't overflow on signed integer multiplication.
(VpCtoV): Don't overflow on signed integer arithmetic.
(VpCtoV): Don't overflow on signed integer arithmetic.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-10 03:34:38 +00:00
naruse
20219afd83
Suppress warnings
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-23 19:50:47 +00:00
mrkn
bc43842252
* ext/bigdecimal/bigdecimal.c (BigDecimal_divide): Use Qnil and NIL_P
...
instead of (VALUE)0 as a return value.
* ext/bigdecimal/bigdecimal.c (BigDecimal_div): ditto.
* ext/bigdecimal/bigdecimal.c (BigDecimal_divremain): ditto.
* ext/bigdecimal/bigdecimal.c (BigDecimal_remainder): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-23 14:30:56 +00:00
mrkn
e52a4a70a9
* ext/bigdecimal/bigdecimal.c: Fix style.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-22 01:38:55 +00:00
ayumin
49636da490
* ext/bigdecimal/bigdecimal.c: fixed typo. same as r39830
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-19 19:23:15 +00:00
ayumin
6f072a36c0
* ext/bigdecimal/bigdecimal.c: fixed typo.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-19 19:19:46 +00:00
kazu
dbec401c11
use INT2FIX(0) instead of INT2NUM(0).
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-05 16:31:19 +00:00
mrkn
a4665e30f7
* ext/bigdecimal/bigdecimal.c (BigDecimal_to_s): use CRuby style.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-14 05:42:51 +00:00
mrkn
512b987544
* ext/bigdecimal/bigdecimal.c: use RB_TYPE_P(x, t)
instead of
...
`TYPE(x) == t`.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-14 05:42:48 +00:00
mrkn
dc2182aab8
* ext/bigdecimal/bigdecimal.c (BigDecimal_sub):
...
need to specify precision for converting Rational and Float.
[ruby-dev:46544] [Bug #7404 ]
* ext/bigdecimal/bigdecimal.c (BigDecimal_mult): ditto.
* ext/bigdecimal/bigdecimal.c (BigDecimal_divide): ditto.
* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): ditto.
* ext/bigdecimal/bigdecimal.c (BigDecimal_divremain): ditto.
* test/bigdecimal/test_bigdecimal.rb: add tests for the above fixes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-13 06:15:37 +00:00
mrkn
1be6a498ba
* ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal):
...
add RB_GC_GUARD to prevent the immediate object is GCed too early.
This patch was made by Yusuke Endoh. [Bug #7044 ] [ruby-core:47632]
* test/bigdecimal/test_bigdecimal.rb: add a reproduction test for
the issue [Bug #7044 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-07 14:42:52 +00:00
shugo
3a6dec0c5d
* include/ruby/ruby.h (RB_UNUSED_VAR): new macro to suppress
...
warnings for unused variables.
* ext/bigdecimal/bigdecimal.c (ENTER): use RB_UNUSED_VAR() to
suppress annoying warnings by -Wunused-but-set-variable in gcc 4.6.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-13 03:09:22 +00:00
mrkn
1fec21fe60
* ext/bigdecimal/bigdecimal.c (BigDecimal_new): stop checking string
...
taintness. [Bug #5508 ] [ruby-core:40510]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-02 15:09:49 +00:00
zzak
50c859715d
* ext/bigdecimal/bigdecimal.c:
...
Documentation for BigDecimal
Based on a patch from Vincent Batts
[ruby-core:49047] [Bug #7305 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-09 07:03:13 +00:00
mrkn
a3e5a86596
* ext/bigdecimal/bigdecimal.c (BigDecimal_new),
...
test/bigdecimal/test_bigdecimal.rb:
Fix exception message of BigDecimal constructor with a Float.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-01 13:04:04 +00:00
mrkn
2e6b5ece95
* ext/bigdecimal/bigdecimal.c (BigDecimal_add),
...
test/bigdecimal/test_bigdecimal.rb:
need to specify precision for converting Rational and Float.
[ruby-core:48045] [Bug #7176 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-01 13:03:53 +00:00
usa
1d1130eea1
* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use self's sign to
...
determine 0.0 and Inf's sign instead of internal double value's.
Reported by phasis68 (Heesob Park) at [ruby-core:47381] [Bug #6955 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-31 05:34:08 +00:00
nobu
d7ca01a73a
bigdecimal.c: check underflow
...
* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): check underflow since
strtod() sets errno to ERANGE at underflow too. [ruby-core:47342]
[Bug #6944 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-30 07:17:56 +00:00
nobu
13527efd59
bigdecimal.c: fix format specifier
...
* ext/bigdecimal/bigdecimal.c (BigMath_s_log): fix format specifier.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-05 15:40:56 +00:00
nobu
af310963ab
* ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,
...
must not cast it to unsigned long, which may be shorter than
VALUE, and the result can be mere garbage.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-11 05:09:58 +00:00
nobu
9cc7e9d1e8
Revert r35616 "* ext/bigdecimal/bigdecimal.c: use RB_GC_GUARD. [ruby-dev:45627]"
...
RB_GC_GUARD() is only for variables on the machine stack, because it
forces a VALUE to be stored in a variable which should be referenced
from the GC, but does not add any reference path to the variable.
So it makes no sense for objects in heap.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-11 04:50:54 +00:00
mrkn
c8b3528383
* ext/bigdecimal/bigdecimal.c: use RB_GC_GUARD. [ruby-dev:45627]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-10 18:44:25 +00:00
naruse
0fce0545b6
* ext/bigdecimal/bigdecimal.c (Init_bigdecimal): define IDs before
...
they are used. [ruby-core:44900] [Bug #6406 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-07 02:03:28 +00:00
drbrain
da39d32f60
* encoding.c (rb_enc_codepoint_len): Use UNREACHABLE to avoid "control
...
reaches end of non-void function" warnings. [ruby-trunk - Bug #6066 ]
* re.c (name_to_backref_number): ditto.
* object.c (rb_Float): ditto.
* io.c (io_readpartial): ditto.
* io.c (io_read_nonblock): ditto.
* pack.c (rb_uv_to_utf8): ditto.
* proc.c (rb_method_entry_arity): ditto.
* vm_method.c (rb_f_notimplement): ditto.
* struct.c (rb_struct_aset_id): ditto.
* class.c (rb_scan_args): ditto.
* process.c (rlimit_resource_type): ditto.
* process.c (rlimit_resource_value): ditto.
* process.c (p_uid_switch): ditto.
* process.c (p_gid_switch): ditto.
* ext/digest/digest.c (rb_digest_instance_update): ditto.
* ext/digest/digest.c (rb_digest_instance_finish): ditto.
* ext/digest/digest.c (rb_digest_instance_reset): ditto.
* ext/digest/digest.c (rb_digest_instance_block_length): ditto.
* ext/bigdecimal/bigdecimal.c (BigDecimalCmp): ditto.
* ext/dl/handle.c (rb_dlhandle_close): ditto.
* ext/tk/tcltklib.c (pending_exception_check0): ditto.
* ext/tk/tcltklib.c (pending_exception_check1): ditto.
* ext/tk/tcltklib.c (ip_cancel_eval_core): ditto.
* ext/tk/tcltklib.c (lib_get_reltype_name): ditto.
* ext/tk/tcltklib.c (create_dummy_encoding_for_tk_core): ditto.
* ext/tk/tkutil/tkutil.c (tk_hash_kv): ditto.
* ext/openssl/ossl_ssl.c (ossl_ssl_session_reused): ditto.
* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_dsa_verify_asn1): ditto.
* ext/openssl/ossl_pkey_ec.c (ossl_ec_point_is_at_infinit): ditto.
* ext/openssl/ossl_pkey_ec.c (ossl_ec_point_is_on_curve): ditto.
* ext/fiddle/conversions.c (generic_to_value): ditto.
* ext/socket/raddrinfo.c (rsock_io_socket_addrinfo): ditto.
* ext/socket/socket.c (sock_s_getnameinfo): ditto.
* ext/ripper/eventids2.c (ripper_token2eventid): ditto.
* cont.c (return_fiber): ditto.
* dmydln.c (dln_load): ditto.
* vm_insnhelper.c (vm_search_normal_superclass): ditto.
* bignum.c (big_fdiv): ditto.
* marshal.c (r_symlink): ditto.
* marshal.c (r_symbol): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-13 23:45:37 +00:00
nobu
f5482e4c38
* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): since methods
...
can be overridden, so should not make an assumption on the type
of results. [ruby-core:42969][Bug #6093 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-27 08:03:24 +00:00
nagachika
4af11279c6
* ext/bigdecimal/bigdecimal.c (VpMult, VpCtoV, VpSqrt): remove assined
...
but unused variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-21 15:42:41 +00:00
nobu
f9a4d5717c
* ext/bigdecimal/bigdecimal.c (BigDecimal_s_allocate): follow
...
Allocation Framework. [Bug #5775 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-21 03:35:27 +00:00
nobu
9c00c1234d
* ext/bigdecimal/bigdecimal.c (Init_bigdecimal): does not follow
...
allocation framework right now. [ruby-core:41710] [Bug #5773 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-18 05:34:34 +00:00
drbrain
3a5daefe1f
* ext/bigdecimal/bigdecimal.c: Document +@, -@, hash, INFINITY, Nan.
...
Patch by Sylvain Daubert. [Ruby 1.9 - Feature #5622 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-07 01:58:59 +00:00
nobu
d0b2816d02
* ext/bigdecimal/bigdecimal.c (VpAllocReal): reduce extra frac.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-02 06:48:10 +00:00
nobu
413f24d3b0
* whitespace cleanup.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-04 07:19:23 +00:00
ayumin
0abbe4c1e6
* ext/bigdecimal/bigdecimal.c (BigDecimal_abs): Fix comment.
...
BigDecimal#sqrt requires argument. Reported by Makoto Kishimoto.
Thanks for your contribution. [Bug #5267 ] [ruby-dev:44452]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-09 13:06:51 +00:00
mrkn
52c7bbd444
* ext/bigdecimal/bigdecimal.c (cannot_be_coerced_into_BigDecimal):
...
remove duplication.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-17 14:04:22 +00:00
mrkn
4e8d6c105c
Merge branch '5172_bigdecimal_gc_issue' into trunk
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-17 06:35:21 +00:00