Commit Graph

5468 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto 8b39a7825d Reduce unnecessary mrb_obj_ptr() to mrb_check_frozen() 2023-05-31 08:29:12 +09:00
Yukihiro "Matz" Matsumoto 8873229312 codedump.c: fix indentation of OP_SCLASS 2023-05-30 16:08:38 +09:00
Yukihiro "Matz" Matsumoto 6eedf1065d numeric.c (flo_idiv): add mrb_check_num_exact 2023-05-30 08:54:44 +09:00
Yukihiro "Matz" Matsumoto e84060a900 string.c: rename function str_check_too_big -> str_check_length 2023-05-30 08:40:16 +09:00
Yukihiro "Matz" Matsumoto f813b5d1d8 string.c (str_new): add string length check 2023-05-29 23:18:44 +09:00
Yukihiro "Matz" Matsumoto aecaaf011f string.c (mrb_str_resize): refactor string length check 2023-05-29 23:18:19 +09:00
Yukihiro "Matz" Matsumoto 0a6e1c0ffe class.c (copy_class): copy source flags as well (except frozen flag) 2023-05-29 22:59:05 +09:00
Yukihiro "Matz" Matsumoto c0c4219b25 class.c (copy_class): avoid copying method table in some cases
To prevent memory leaks
2023-05-29 22:57:59 +09:00
Yukihiro "Matz" Matsumoto e4e3740688 class.c (init_copy): add an assertion 2023-05-29 09:26:45 +09:00
Yukihiro "Matz" Matsumoto a02894afa3 small cosmetic changes 2023-05-29 09:26:45 +09:00
Yukihiro "Matz" Matsumoto 0ffe9b987a class.c (mrb_prepend_module): c should not be MRB_TT_ICLASS 2023-05-29 09:26:44 +09:00
Yukihiro "Matz" Matsumoto 7f887f1928 class.c (mrb_class_initialize): check duplicated initialization 2023-05-26 12:48:34 +09:00
Yukihiro "Matz" Matsumoto 2ad3f0e34b vm.c (mrb_yield_with_class): keep mid of the callee
Otherwise `super` from within blocks may call wrong methods.
2023-05-26 11:17:51 +09:00
Yukihiro "Matz" Matsumoto 9040baa270 vm.c (mrb_yield_with_class): avoid redundant initialization of mid 2023-05-26 11:14:58 +09:00
Yukihiro "Matz" Matsumoto 8f745b7728 vm.c (OP_ENTER): fix issues by unreferenced kdict and blk
There's short a period where kdict and blk are not pointed from the stack.
2023-05-23 14:54:36 +09:00
Yukihiro "Matz" Matsumoto 2f7f797473 remove extra spaces before ; 2023-05-22 12:05:35 +09:00
Yukihiro "Matz" Matsumoto f1a3cfbd3b add a space between if and ( 2023-05-22 11:55:21 +09:00
Yukihiro "Matz" Matsumoto c32f7915fb reformat else clause indentation style 2023-05-20 00:21:01 +09:00
Yukihiro "Matz" Matsumoto eea72ec84a fix spaces in the type cast expressions (cosmetic changes) 2023-05-18 23:29:16 +09:00
Yukihiro "Matz" Matsumoto cead78b394 variable.c (iv_rehash): fixed removed check
This check removed in 70cc2cc was necessary.
2023-05-17 09:52:00 +09:00
Yukihiro "Matz" Matsumoto 5ead26be3d vm.c (ci_bidx): inline the function if possible 2023-05-16 22:41:32 +09:00
Yukihiro "Matz" Matsumoto cd276715f8 variable.c: move inline function before usage 2023-05-13 22:52:39 +09:00
Yukihiro "Matz" Matsumoto 077d8ad514 symbol.c (sym_intern): check NUL before calling strlen()
To avoid accidental buffer overrun if a string without NUL termination
is provided.
2023-05-02 09:45:47 +09:00
Yukihiro "Matz" Matsumoto 19b2c1c73d symbol.c: remove unused macro 2023-05-02 09:45:23 +09:00
Yukihiro "Matz" Matsumoto 70cc2cc173 variable.c (iv_rehash): remove unnecessary checks 2023-04-29 23:17:08 +09:00
Yukihiro "Matz" Matsumoto 5024c3453d variable.c (iv_put): remove NULL check since t must not be NULL 2023-04-27 17:14:48 +09:00
Yukihiro "Matz" Matsumoto ac7e63ab3b Merge pull request #5986 from dearblue/bytesplice
Fix bugs in `String#bytesplice`
2023-04-17 07:17:00 +09:00
dearblue 0279067dc4 Returns the value of Integer#~ from mrb_bint_rev()
fixed #5987
2023-04-15 22:39:05 +09:00
dearblue 8665f88791 Allow an empty string for String#bytesplice 2023-04-15 21:26:01 +09:00
dearblue 59931e95c4 Prohibit string lengths less than 0 in String#bytesplice 2023-04-15 21:26:00 +09:00
dearblue 5bc3a48ecb Handling negative indices in String#bytesplice 2023-04-15 21:25:59 +09:00
dearblue dcced0016c Countermeasure to overflow for String#bytesplice 2023-04-15 21:25:58 +09:00
dearblue 73b6c6619c Need type check for replace by String#bytesplice 2023-04-15 21:25:57 +09:00
dearblue 2e9ac8f448 Returns self for String#bytesplice 2023-04-15 21:25:56 +09:00
dearblue d3128ce58a Allow Class#allocate to be prohibited
Calling `Class#allocate` with `UnboundMethod#bind_call` usually succeeds without problems.
If this behavior does not make us happy, we can now prohibit it with `MRB_SET_INSTANCE_TT(klass, MRB_TT_UNDEF)`.

At the same time, it applies to the `Binding`, `Complex`, `Data`, `Float`, `Integer`, `Method`, `Rational` and `UnboundMethod` classes.
2023-04-09 21:14:07 +09:00
Yukihiro "Matz" Matsumoto 64536b866b string.c (str_escape): simplify the logic 2023-04-07 13:53:19 +09:00
Yukihiro "Matz" Matsumoto d0653ca908 cdump.c: escape filename debug information; fix #5974
Windows path separator is "\" so that it needs to be escaped.
2023-04-07 13:51:59 +09:00
Yukihiro "Matz" Matsumoto 27a14f0a9a vm.c (OP_CMP): fixed wrong numeric comparison for integers; fix #5975
MRB_TT_INTEGER value may not be fixnum (immediate integer), so we should
not use mrb_fixnum() here.
2023-04-07 10:46:01 +09:00
Yukihiro "Matz" Matsumoto 761816bf8a fmt_fp.c (mrb_format_float): change else indentation style 2023-04-06 16:49:08 +09:00
Yukihiro "Matz" Matsumoto 956d0c5127 fmt_fp.c (mrb_format_float): set minimum precision 1 for "%e" 2023-04-06 16:47:43 +09:00
Yukihiro "Matz" Matsumoto 31c99eb99b debug.c (mrb_debug_get_position): do not keep lp and fp uninitialized 2023-04-06 15:47:24 +09:00
Yukihiro "Matz" Matsumoto ce86040a0f Merge pull request #5973 from dearblue/envadjust
Small improvements to `envadjust()`
2023-04-06 10:48:49 +09:00
Yukihiro "Matz" Matsumoto 9e4b3af553 Merge pull request #5972 from dearblue/simple-mrb_top_run
Simplify `mrb_top_run()`
2023-04-06 10:46:56 +09:00
dearblue 17abe548a7 Small improvements to envadjust()
- Calculate the difference between `oldbase` and `newbase` only once outside the loop.
  - To make sure they are within range, the comparison is done only once instead of twice.
2023-04-05 22:29:27 +09:00
dearblue b90f59d36e Simplify mrb_top_run() 2023-04-05 22:11:36 +09:00
dearblue b46a852acb Remove unnecessary branches in L_RAISE block
The previous `while` loop ends if the catch handler pointer `ch` is not `NULL`.

Supplement to #5843.
2023-04-05 21:52:21 +09:00
Yukihiro "Matz" Matsumoto f1568af0d2 gc.c: fix GC regressions
The past fix was wrong.
2023-03-29 08:46:10 +09:00
Yukihiro "Matz" Matsumoto fbb3a2426f proc.c (mrb_proc_eql): define == and eql? for Proc class 2023-03-27 19:14:21 +09:00
Yukihiro "Matz" Matsumoto ddb2240b5e proc.c: update ISO section numbers for methods 2023-03-27 11:39:58 +09:00
Yukihiro "Matz" Matsumoto b885d7387d proc.c: no need to define Proc.lambda
Since Kernel is an ancestor of Kernel module itself recursively.
2023-03-27 11:33:13 +09:00