KOBAYASHI Shuji
fa317fabbd
Use mrb_ensure_string_type in mrb_to_str
2019-05-11 18:40:33 +09:00
Yukihiro "Matz" Matsumoto
73091ab202
Do not apply mrb_ptr() to immediate objects; fix #4307
2019-03-02 15:45:15 +09:00
Yukihiro "Matz" Matsumoto
53e2df3e93
Restore mrb_string_type function for compatibility.
2018-11-19 16:13:26 +09:00
Yukihiro "Matz" Matsumoto
610bcc88c2
Removed to_hash conversion method.
2018-11-19 12:08:28 +09:00
Yukihiro "Matz" Matsumoto
698f5f707c
Removed to_ary conversion method.
2018-11-19 12:08:28 +09:00
Yukihiro "Matz" Matsumoto
ff08856fe3
Remove implicit conversion using to_str method; fix #3854
...
We have added internal convenience method `__to_str` which
does string type check.
The issue #3854 was fixed but fundamental flaw of lack of stack
depth check along with fibers still remains. Use `MRB_GC_FIXED_ARENA`
for workaround.
2018-11-19 12:05:46 +09:00
Yukihiro "Matz" Matsumoto
afca99a40b
Remove implicit conversion using to_int method.
...
The ISO standard does not include implicit type conversion using
`to_int`. This implicit conversion often causes vulnerability.
There will be no more attacks like #4120 .
In addition, we have added internal convenience method `__to_int` which
does type check and conversion (from floats).
2018-11-19 11:28:51 +09:00
Yukihiro "Matz" Matsumoto
75c1fccd08
Check if to_int returns fixnum value; fix #3946
2018-02-13 09:12:39 +09:00
YAMAMOTO Masaya
acdc2d1f24
Add MRB_WITHOUT_FLOAT
2017-10-11 17:58:11 +09:00
Tomasz Dąbrowski
536b95eb48
fix: mrbgems\mruby-kernel-ext\src\kernel.c(114): warning C4244: 'function': conversion from 'mrb_int' to 'int', possible loss of data
2017-09-27 22:22:04 +02:00
Yukihiro "Matz" Matsumoto
f1767fd079
Separate mrb_str_buf_new and mrb_str_new_capa.
...
`mrb_str_buf_new` is an old function that ensures capacity size of
`MRB_STR_BUF_MIN_SIZE` minimum. Usually one need to use
`mrb_str_new_capa` instead.
2017-08-18 22:17:48 +09:00
Yukihiro "Matz" Matsumoto
83fc915213
Add new range check macro FIXABLE_FLOAT(); ref #3652
...
When MRB_INT64, valid value range of mrb_int is bigger than double,
which only has 53 bits significant precision.
2017-05-26 09:54:10 +09:00
Yukihiro "Matz" Matsumoto
db47ae5de5
Fixed a bug in mrb_convert_to_integer(); fix #3581
...
Did not update the result from `mrb_check_string_type()` before
string-to-integer conversion.
2017-04-11 02:00:02 +09:00
Bouke van der Bijl
9c61e1cd87
Use mrb_ptr instead of mrb_cptr in Kernel#to_s
...
This is to avoid segfault when WORD_BOXING is enabled
Reported by https://hackerone.com/brakhane
2016-12-01 15:23:56 -05:00
Yukihiro "Matz" Matsumoto
2bb47addad
Prohibit instantiation of immediate objects
2016-11-30 10:36:17 +09:00
Yukihiro "Matz" Matsumoto
798c69d1be
Avoid casting from int to unsigned char for C++; ref #3267
2016-11-24 09:28:00 +09:00
Yukihiro "Matz" Matsumoto
8438792d27
renamed "inline" to "istruct" to represent inline struct; ref #3251
2016-11-17 17:19:49 +09:00
Tomasz Dąbrowski
4cca8bac6b
inline structures data type for mruby (MRB_TT_INLINE) ( fix #3237 )
...
Inline structures have no instance variables, no finalizer, and offer as much space as possible in RBASIC object. This means 24 bytes on 64-bit platforms and 12 bytes on 32-bit platforms.
mruby-inline-struct gem is only provided for testing.
2016-11-17 17:19:49 +09:00
Kei Sawada
d69b5c3fc7
Add case statement of MRB_TT_SCLASS in mrb_obj_is_kind_of()
2015-12-16 15:54:03 +09:00
Yukihiro "Matz" Matsumoto
5c405dea3d
include changed from by quotes ("") to by brackets (<>); close #3032
2015-11-27 17:48:23 +09:00
Seba Gamboa
e871b77f41
Increasing docs coverage
2015-10-20 12:16:46 -03:00
Yukihiro "Matz" Matsumoto
2550edd570
remove origin member to implement prepend from struct RClass; ref #2885
...
instead origin is saved in ICLASS with MRB_FLAG_IS_ORIGIN set.
2015-09-05 02:01:02 +09:00
Blaž Hrastnik
8c13e2b7c6
Set origin when doing kind_of? comparisons
2015-07-13 23:35:30 +02:00
Franck Verrot
2588507285
Remove unnecessary backticks.
...
Dr Markus Kuhn published in 1999 an article [1] explaining in details
why we shouldn't use the ASCII grave accent (0x60) as a left quotation.
Backticks have been used most notably to produce nice-looking LaTeX
documents but it doesn't seem to be an issue on modern platforms and
for the oldest ones, there are workarounds as mentioned by Dr Kuhn.
[1]: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
2015-06-24 13:07:07 +02:00
Jun Hiroe
5235e54137
Fix mrb_convert_to_integer.
2014-10-29 01:30:30 +09:00
kkkkkt
2f1d12c717
revert mrb_equal method
2014-08-18 18:54:46 +09:00
kkkkkt
9da37cdfd1
refactor mruby method(fix indent. remove temporary value, duplicate procedure)
2014-08-18 10:58:48 +09:00
Yukihiro "Matz" Matsumoto
6aa6e75f75
rename obsolete mrb_special_const_p to mrb_immediate_p
2014-08-04 00:50:03 +09:00
Yukihiro "Matz" Matsumoto
206f89e209
add MRB_API modifiers to mruby API functions
2014-08-04 00:47:08 +09:00
David Turnbull
249f05e7d7
Clean up value.h and mrb_value boxing
2014-07-09 06:32:11 +09:00
ksss
a481976056
fix bool number to macro
2014-03-16 21:06:08 +09:00
take_cheeze
7c4961234d
fix mrb_funcall calling
2014-03-12 10:18:38 +09:00
cremno
bfc522bcd5
use mrb_str_cat_lit for literals
2014-03-08 18:38:31 +01:00
ksss
54132e4364
make embed string when create literals
2014-03-06 13:47:51 +00:00
ksss
4070b5987a
embed small string
...
use flags 4 for *this object is embed*
use flags 8~64 for *embed string length*
2014-03-06 13:12:08 +00:00
cubicdaiya
67de10bfcb
use C style comments instead of C++ style comments
...
According to CONTRIBUTING.md,
Don't use C++ style comments
/* This is the prefered comment style */
Use C++ style comments only for temporary comment e.g. commenting out some code lines.
2014-03-01 03:31:45 +09:00
cubicdaiya
bd0244d067
use mrb_str_cat_lit() intead of mrb_str_cat
2014-02-27 22:42:25 +09:00
cremno
8bbc2c107b
mrb_str_cat2: deprecated since 0cedf8f
2014-02-13 13:45:28 +01:00
Yukihiro "Matz" Matsumoto
19a08b8455
Merge pull request #1674 from cremno/mrb_bool-FALSE-TRUE
...
use mrb_bool, FALSE and TRUE more
2014-02-09 18:35:20 +09:00
Yukihiro "Matz" Matsumoto
7ba4612956
use mrb_str_new_lit() more widely
2014-02-06 08:54:47 +09:00
cremno
4507985c3e
use mrb_bool, FALSE and TRUE more
...
It doesn't matter to me if one is using FALSE/TRUE instead of 1/0
but I prefer a type (alias) which emphasizes boolean vars to int.
I changed 1/0 to FALSE/TRUE anyway.
2014-01-31 18:00:36 +01:00
cremno
aa655b9ee1
remove superfluous includes
...
- reduce compile time by a little bit (full-core: ~0.7s for me)
- thanks to 'include-what-you-use' for some help
- include Standard C header files before any other (coding style)
2014-01-07 17:56:30 +01:00
cremno
09bb30870b
tiny word boxing optimization
2014-01-02 06:36:29 +01:00
h2so5
38a0a60412
fix TypeError message
2013-12-19 17:40:47 +09:00
Yukihiro "Matz" Matsumoto
51213bfc7d
mrb_Integer() should not convert strings to integers
2013-10-26 17:06:50 +09:00
Yukihiro "Matz" Matsumoto
3995e7ff8f
rename voidp to cptr
2013-09-21 17:28:47 +09:00
Yukihiro "Matz" Matsumoto
40e6cdcb5c
rename mrb_value_p() to mrb_ptr() since _p means predicate in mruby source
2013-08-07 17:39:28 +09:00
Yuichi Nishiwaki
8dc2fa3bc8
add read barrier to value.p
...
API changes:
- value.p must be accessed via mrb_value_p macro
- value.p must be mutated via MRB_SET_VALUE_P macro
2013-08-03 14:03:44 -07:00
Jun Hiroe
8e42868600
Repalace int with mrb_bool because a return value is boolean.
2013-07-15 23:17:12 +09:00
Jun Hiroe
883c45b931
Replace mrb_intern() func with mrb_intern2() func or mrb_intern_cstr() func.
2013-07-12 01:00:50 +09:00