cremno
ad50a6c410
fix irep float dump format string for MRB_USE_FLOAT
...
IEC 60559 single format has 6 to 9 significant decimal digits precision.
However the printf conversion specifier e (and E, of course) already
writes 1 digit - the one before the decimal point - and precision
specifies the number of digits to write after the decimal point.
2015-08-17 20:39:24 +02:00
Yukihiro "Matz" Matsumoto
a1731254be
Merge pull request #2913 from gkta/remove-duplicate-len-check
...
Remove duplicated RARRAY_LEN check in ary_elt
2015-08-12 12:11:43 +09:00
go.kikuta
c7fad5aa33
Remove duplicated RARRAY_LEN check
2015-08-12 10:20:55 +09:00
go.kikuta
96c948d812
Remove non-need tmp value
2015-08-11 18:02:12 +09:00
Yukihiro "Matz" Matsumoto
5af770cd59
prevent out-of-bounds ensure clause access; fix #2910
2015-08-10 11:41:01 +09:00
Yukihiro "Matz" Matsumoto
0c7d29dff6
FIXABLE() may work wrong on MRB_INT64; fix #2909
2015-08-07 15:30:52 +09:00
Yukihiro "Matz" Matsumoto
f0040b5371
vm: execute ensure without exception at the top of the fiber; fix #2904
2015-07-30 16:46:31 +09:00
Yukihiro "Matz" Matsumoto
89ebb0c4f1
vm: execute ensure at the top of the fiber; fix #2903
2015-07-30 16:45:31 +09:00
cremno
1a98512831
always call frexp() instead of frexpl()
...
No values that can only be represented as long double
are passed since mrb_float is either float or double.
2015-07-29 21:05:33 +02:00
Corey Powell
ae1ece7228
Make include_module_at static
...
Since I can't forsee any reason to use it directly inplace of using
prepend/include
2015-07-16 15:25:14 -05:00
Yukihiro "Matz" Matsumoto
6c94b2d963
Merge pull request #2889 from takkaw/fix_build_cygwin64
...
64bit Cygwin also doesn't have frexpl(3)
2015-07-16 21:56:38 +09:00
Yukihiro "Matz" Matsumoto
4f37adfd5e
Merge pull request #2887 from cremno/use-mrb_str_cat_str-instead-of-mrb_str_append
...
use mrb_str_cat_str() instead of mrb_str_append()
2015-07-16 21:56:00 +09:00
takkaw
67e187f0f8
64bit Cygwin also doesn't have frexpl(3)
2015-07-16 18:40:07 +09:00
cremno
0f284091d1
delete mrb_free()-related non-NULL checks
...
No need to optimize since a program only exits once and errors are rare.
Also the mruby source code doesn't have these kind of checks elsewhere.
The ones in {Time,Random}#initialize are kept because there it actually
matters
since initialization always happens and re-initialization is unlikely.
2015-07-16 04:58:21 +02:00
cremno
938ed044f4
use mrb_str_cat_str() instead of mrb_str_append()
...
If the argument is always a string, then mrb_str_cat_str() can be
directly called instead of indirectly by mrb_str_append().
mrb_any_to_s(), mrb_obj_as_string(), mrb_inspect() always return a
string.
2015-07-16 03:56:31 +02:00
Corey Powell
dbbf2e2623
Remove non-applicable "hack" comment
2015-07-14 14:12:23 -05:00
Corey Powell
eb172c28d7
Applied gc patch to fix ORIGIN ICLASS method table leak
...
Based on the gc patch by ko1
https://github.com/ruby/ruby/commit/5922c954614e5947a548780bb3b894626affe6dd
2015-07-14 09:44:04 -05:00
Corey Powell
f0e920baf0
Renamed parameters in include_module_at
2015-07-14 08:55:53 -05:00
Yukihiro "Matz" Matsumoto
53a81da0fa
mrb_get_args: improve function description about !
2015-07-14 13:35:06 +09:00
Yukihiro "Matz" Matsumoto
4e7050fe0c
mrb_get_args: allow d!
2015-07-14 13:34:21 +09:00
Yukihiro "Matz" Matsumoto
a075498613
mrb_get_args: allow A,H,s,z,a,d specifiers to take ! to accept nil.
...
S,A,H gives nil, s,z,a,d gives NULL for nil argument. ref 02474da
2015-07-14 13:22:42 +09:00
Blaž Hrastnik
8c13e2b7c6
Set origin when doing kind_of? comparisons
2015-07-13 23:35:30 +02:00
Corey Powell
81a2b3431c
included_modules, origin fix
...
Prepended modules would include their origin ICLASS
2015-07-13 09:49:51 -05:00
Corey Powell
199a808e36
Bugfix, included_modules would include classes
2015-07-13 09:49:18 -05:00
Corey Powell
1f678a4ace
Removed comment beside method_removed
...
Not sure if this apart of the ISO standard, so make sure its not misrepresented
2015-07-13 09:40:40 -05:00
Corey Powell
668153092f
Added Module#method_removed hook
2015-07-13 09:38:24 -05:00
Blaž Hrastnik
a725cb9093
Include prepended methods in the instance_methods list.
2015-07-13 14:04:43 +02:00
Corey Powell
d4b009b394
Fixed Modules not being fully initialized before #initialize was called
2015-07-13 14:04:42 +02:00
Corey Powell
40f48034d5
Added changed check to the mrb_include_module
2015-07-13 14:04:42 +02:00
Corey Powell
ce66727177
Remove some remnant debug code
2015-07-13 14:04:42 +02:00
Corey Powell
005cacf18b
Additional patches to make this work
2015-07-13 14:04:42 +02:00
Blaž Hrastnik
97529c2a9a
Comment in a refactor to match MRI, but that fails 320 tests.
2015-07-13 14:04:42 +02:00
Blaž Hrastnik
2e617e37e1
origin must be initialized
2015-07-13 14:04:42 +02:00
Blaž Hrastnik
ad9f32c5a8
Expose insert position, which should be at origin for include and klass for
...
prepend.
2015-07-13 14:04:42 +02:00
Blaž Hrastnik
f962890a92
Implement Module#prepend.
2015-07-13 14:04:42 +02:00
Yukihiro "Matz" Matsumoto
d0e67aada7
use "S!" specifier of mrb_get_args() to improve #2882 fix.
2015-07-13 11:18:44 +09:00
Yukihiro "Matz" Matsumoto
02474daa14
allow '!' after 'S' specifier of mrb_get_args() that allow nil.
...
thus "S!" means String|nil type. you have to check nil before
dereferencing the value. this is added to address #2882 while
keeping code simplicity. besides that current #2882 fix lose
polymorphism provided by mrb_get_args().
2015-07-13 11:14:50 +09:00
Yukihiro "Matz" Matsumoto
9c311ddc93
refactor mrb_bob_missing to share raising NoMethodError code; fix #2878
...
Note: arguments of mrb_no_method_error() has changed. You need to replace
3rd and 4th argument (say n, argv) to mrb_ary_new_from_values(mrb, n, argv).
2015-07-13 11:07:59 +09:00
jbreeden
dd558a108d
Removing unndeeded to_s
2015-07-11 21:15:33 -07:00
jbreeden
bdbd696c48
Patching array join
2015-07-11 21:03:04 -07:00
Yukihiro "Matz" Matsumoto
40252169fc
method_missing definition may be undefined; fix #2878
2015-07-07 10:32:54 +09:00
Yukihiro "Matz" Matsumoto
5cfc0d0dc0
Merge pull request #2877 from cremno/fix-dangling-ptr
...
Coverity: fix dangling pointer
2015-07-07 07:40:38 +09:00
Yukihiro "Matz" Matsumoto
5daabc9407
Merge pull request #2876 from joans321/master
...
fix androideabi cross-compile error : undefined reference to 'frexpl'
2015-07-07 00:36:51 +09:00
xuejianqing
0b50b4a500
fix androideabi cross-compile error : undefined reference to 'frexpl'
2015-07-06 12:51:57 +08:00
Anton Davydov
03ae38df4e
Fix typo in comment in String#mrb_cstr_to_inum [skip ci]
2015-07-05 13:53:14 +03:00
cremno
7206a8c4f9
fix dangling pointer
...
CID 75872 (#3-2 of 3): Pointer to local outside scope (RETURN_LOCAL)
38. use_invalid: Using p, which points to an out-of-scope variable buf.
2015-07-03 02:48:22 +02:00
cremno
43df1d7e39
remove unnecessary default case
2015-07-03 01:14:06 +02:00
Yukihiro "Matz" Matsumoto
ff49cf95fc
Merge pull request #2869 from cremno/refactor-print.c
...
src/print.c: rewrite printstr() to get rid of code duplication
2015-07-01 08:47:41 +09:00
Simon Génier
d6865a9cc7
Avoid a narrowing cast in flo_round under MRB_INT64.
2015-06-29 20:19:19 -04:00
Kouhei Sutou
52db92de53
Fix a crash bug when GC is ran while creating a proc with env
...
mrb_proc_new_cfunc_with_env() allocates RProc with RProc::env as NULL
then allocates REnv and sets it to RProc::env of the allocated RProc. If
incremental GC is ran before "allocates REnv and sets it to RProc::env
of the allocated RProc", the allocated RProc's GC status is
"marked" (Black) and the allocated REnv's GC status is
"unmarked" (White). The next incremental GC sweeps the allocated REnv
without re-marking the allocated RProc. Because the RProc is Black and
the REnv is White.
We need to implement write barrier for the case.
We can force to cause the above situation by the following patch:
diff --git a/src/proc.c b/src/proc.c
index f98998f..4f4e25c 100644
--- a/src/proc.c
+++ b/src/proc.c
@@ -92,6 +92,7 @@ mrb_proc_new_cfunc_with_env(mrb_state *mrb, mrb_func_t func, mrb_int argc, const
struct REnv *e;
int i;
+ mrb_incremental_gc(mrb);
p->env = e = env_new(mrb, argc);
MRB_ENV_UNSHARE_STACK(e);
e->stack = (mrb_value*)mrb_malloc(mrb, sizeof(mrb_value) * argc);
With this patch, "rake test" causes segmentation fault.
2015-06-29 14:39:30 +09:00