Commit Graph

5732 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto 168eb8c267 readint.c (mrb_read_int): narrow scope of a local variable 2024-03-12 08:21:27 +09:00
Yukihiro "Matz" Matsumoto db8368fa86 numeric.c: remove bit operations methods from Float class; #6197
mruby used to use float numbers for overflown integers before we
implemented big integers. Now we don't need bit operations for float
numbers anymore. Also removed tests for shift operations for float
numbers.
2024-03-11 11:44:41 +09:00
niyarin af8e772b9e Fix int_xor to call flo_xor. 2024-03-10 12:13:34 +09:00
Yukihiro "Matz" Matsumoto 44edd3438b gc.c: remove unused local variable; ref #6194 2024-03-09 14:29:42 +09:00
Yukihiro "Matz" Matsumoto 4b312bdb2f debug.c: narrow scope of local variables 2024-03-09 14:29:42 +09:00
Yukihiro "Matz" Matsumoto 678bdd2c4b cdump.c (sym_operator_name): narrow scope of local variables 2024-03-09 14:29:42 +09:00
Yukihiro "Matz" Matsumoto 3699f013ac Merge pull request #6193 from dearblue/c-epilogue-assert
Fix wrong assertion in `OP_SENDB`.
2024-03-09 13:23:33 +09:00
Yukihiro "Matz" Matsumoto f1f022bd1a Merge pull request #6194 from dearblue/count-closures
Simplify the calculation of the number of closures in `MRB_TT_FIBER`
2024-03-09 13:22:47 +09:00
dearblue cb36398d30 Simplify the calculation of the number of closures in MRB_TT_FIBER 2024-03-08 22:06:08 +09:00
dearblue 9616971c70 Fix wrong assertion in OP_SENDB.
Assertions were failing on exit if started with `mrb_fiber_resume()`.

The bug that caused it was introduced by commit 42308c42b5 (#6106).
The bug was moved by commit 990e18ad59.
2024-03-08 21:56:00 +09:00
dearblue 4380773666 Fix OP_STOP with exception
Previously, `mrb->exc` would remain replaced by a `break` object if a rewind operation was performed during the processing of a `OP_STOP` instruction.
This problem has existed since #5060, when it was introduced in mruby-3.0.

However, as of mruby-3.0, a manual or third-party generator is required to cause the `OP_STOP` instruction to be issued.
Therefore, it is believed that this has not had an impact until now.
2024-03-08 21:50:46 +09:00
Yukihiro "Matz" Matsumoto 9257a61b39 Merge pull request #6137 from dearblue/fiber-unreachable
Remove unreachable blocks in `OP_RETURN`
2024-03-07 16:13:56 +09:00
Yukihiro "Matz" Matsumoto a8694bdefb Merge pull request #6184 from dearblue/L_STOP
Remove the `L_STOP` label
2024-03-06 18:02:34 +09:00
Yukihiro "Matz" Matsumoto 130ec9cd90 backtrace.c (mrb_unpack_backtrace): need no NULL check 2024-03-05 12:24:49 +09:00
Yukihiro "Matz" Matsumoto 439a895f46 symbol.c: use post increment if possible (just style matter) 2024-03-04 13:01:21 +09:00
Yukihiro "Matz" Matsumoto d840274805 symbol.c: narrow scope of local variables 2024-03-04 13:01:20 +09:00
Yukihiro "Matz" Matsumoto aa0cb370a8 kernel.c (mrb_obj_is_instance_of): add const qualifier 2024-03-04 13:01:20 +09:00
Yukihiro "Matz" Matsumoto b0d11ddb4e error.c (mrb_sys_fail): narrow scope of local variables 2024-02-29 19:14:19 +09:00
Yukihiro "Matz" Matsumoto a0d10c0384 pool.c (mrb_pool_close): narrow scope of a local variable 2024-02-29 19:14:19 +09:00
Yukihiro "Matz" Matsumoto 371b13a32e dump.c: inline loop variables (with small refactoring) 2024-02-29 19:14:18 +09:00
Yukihiro "Matz" Matsumoto 099d01c751 class.c (mrb_mod_module_function): narrow scope of local variables 2024-02-29 19:14:18 +09:00
Yukihiro "Matz" Matsumoto 11d7c74e50 Merge pull request #6185 from dearblue/keep_context
Added `mrb_callinfo::u.keep_context` for clarity
2024-02-29 19:13:59 +09:00
Yukihiro "Matz" Matsumoto 0673563968 Merge pull request #6186 from dearblue/check-env.cxt
Omit NULL check of `e->cxt` in `OP_RETURN_BLK`
2024-02-25 23:46:16 +09:00
Yukihiro "Matz" Matsumoto 8130bbc479 string.c (mrb_str_len_to_dbl): should return zero for invalid string
We should not use uninitialized value; fix #6183
2024-02-24 23:03:15 +09:00
dearblue e94eef6f98 Omit NULL check of e->cxt in OP_RETURN_BLK
Since `mrb->c` is never `NULL`, there is no need to check it beforehand.
2024-02-24 21:38:51 +09:00
dearblue ce8b2d4973 Added mrb_callinfo::u.keep_context for clarity 2024-02-24 21:32:11 +09:00
dearblue c7af3d48e3 Remove the L_STOP label
The post-processing of the jump source is decided, and it is more natural to deploy it on the spot.
2024-02-24 18:23:33 +09:00
Yukihiro "Matz" Matsumoto 6248e9c2ef Merge pull request #6155 from dearblue/jmpbuf_id
Removed `mrb_jmpbuf_id` for C++ exceptions
2024-02-23 23:51:45 +09:00
Yukihiro "Matz" Matsumoto 72f956d3e0 readfloat.c: remove unused local variable 2024-02-22 10:40:24 +09:00
Yukihiro "Matz" Matsumoto 9e9545b1a6 Merge pull request #6176 from dearblue/alias-proc
Stop assuming alias proc in `CI_PROC_SET()`
2024-02-18 22:13:30 +09:00
dearblue f5cce68ba6 Stop assuming alias proc in CI_PROC_SET()
Resolving alias proc should be done by the caller of `CI_PROC_SET()`.
The same applies to `mrb_vm_ci_proc_set()`.
2024-02-18 21:09:45 +09:00
dearblue 2c66d34a7e Corrected strange conditional in mrb_vm_run()
This was introduced in commit 365c151df0.
I should have checked env first.
2024-02-18 18:18:21 +09:00
Yukihiro "Matz" Matsumoto 7d199b7256 src/error.h: remove unused header 2024-02-16 08:10:53 +09:00
Yukihiro "Matz" Matsumoto a1be05e79f src/opcode.h: remove unused header 2024-02-16 08:09:58 +09:00
Yukihiro "Matz" Matsumoto 3eeeb8fabf string.c (memsearch_swar): skip a local variable 2024-02-15 14:01:49 +09:00
Yukihiro "Matz" Matsumoto 55ca34c31b backtrace.c (mrb_print_backtrace): skip a local variable 2024-02-15 14:01:48 +09:00
Yukihiro "Matz" Matsumoto 9c840a68e2 string.c (memsearch_swar): boundary check by the latest position 2024-02-13 22:36:03 +09:00
Yukihiro "Matz" Matsumoto 6810423da1 backtrace.c (mrb_print_backtrace): avoid backtrace to array conversion
Made print_backtrace() to support both array form and packed backtrace
form, so that we can avoid allocating an array.
2024-02-13 16:18:14 +09:00
Yukihiro "Matz" Matsumoto 441de05376 error.h: use RBasic instead of RObject for generic objects
RObject is type for objects with instance variables. For generic
objects, use RBasic.
2024-02-13 11:05:27 +09:00
Yukihiro "Matz" Matsumoto f285420653 backtrace.c (decode_location): decode packed backtrace location on demand. 2024-02-13 00:07:54 +09:00
Yukihiro "Matz" Matsumoto abcad36bae string.c (memsearch_swar): fixed a buffer overflow 2024-02-09 19:09:01 +09:00
Yukihiro "Matz" Matsumoto 868aeaf48c string.c (memsearch_swar): fixed a buffer overflow 2024-02-09 18:52:44 +09:00
Yukihiro "Matz" Matsumoto 874f1e0138 backtrace.c (copy_location): rename some function and arguments 2024-02-08 23:41:22 +09:00
Yukihiro "Matz" Matsumoto 432caf0670 backtrace.c (pack_backtrace): refactor the function that called once 2024-02-08 23:22:48 +09:00
Yukihiro "Matz" Matsumoto 60919807e5 backtrace.c (each_backtrace): make return type to size_t 2024-02-07 17:34:33 +09:00
Yukihiro "Matz" Matsumoto 0a11215452 backtrace.c (packed_backtrace): avoid calling each_backtrace() twice
Since the length of the backtrace is at most `ciidx + 1` we can avoid
the first call of each_backtrace().
2024-02-07 17:32:58 +09:00
Yukihiro "Matz" Matsumoto b67cea4442 backtrace.c (pack_backtrace_i): avoid infinite loop; ref #6161
When irep->refcnt reaches UINT16_MAX, mrb_irep_incref() raises
exception but the function pack_backtrace_i() is called from
mrb_exc_raise() thus causes the infinite loop problem. So this is a
hack-ish workaround by making irep reference to NULL if refcnt reaches
the maximum count. Probably we will address this issue again to make it
better.
2024-02-07 17:30:11 +09:00
Yukihiro "Matz" Matsumoto b8e4c4b6ba Merge pull request #6166 from dearblue/mrb_heap_page
Stop pseudo flexible array in `mrb_heap_page`
2024-02-05 21:45:04 +09:00
Yukihiro "Matz" Matsumoto 32fb0c04ee Merge pull request #6165 from dearblue/RVALUE
Reduce `RVALUE` related pointer casts.
2024-02-05 21:42:51 +09:00
dearblue 8f14785f10 Stop pseudo flexible array in mrb_heap_page
For reference, the flexible array was introduced by commit 3ab2f9371e (#2997).
Subsequently changed for compatibility with C++ by commit 24939723d7 (#5596).
2024-02-04 21:55:54 +09:00