Yukihiro "Matz" Matsumoto
d298da8e72
vm.c (eval_under): check if irep is NULL; fix #6065
2023-09-28 11:37:07 +09:00
Yukihiro "Matz" Matsumoto
0e98508c33
string.c (mrb_string_value_cstr): RSTR_PTR(s) may be NULL; fix #6067
2023-09-28 09:26:02 +09:00
Yukihiro "Matz" Matsumoto
4c7fab6126
string.c (check_null_byte): str may point NULL buffer; ref #6067
2023-09-28 09:24:30 +09:00
Horimoto Yasuhiro
d55cec41eb
Demotion mrb_f_raise() in kernel.c from MRB_API
...
The prototype declaration of mrb_f_raise() has arleady demoted from
MRB_API in a below commit.
https://github.com/mruby/mruby/commit/0898ce982eea706c9a7b814280cdda09e82abe17
However, the entity of mrb_f_raise() in kernel.c is set MRB_API yet.
Therefore, mruby occures build error with MSVC(in Visual Studio 2022) as below.
https://github.com/groonga/groonga/actions/runs/6310140553/job/17131485675#step:11:2067
The cause of the above error that we define both mrb_f_raise() with
MRB_API and mrb_f_raise() without MRB_API.
2023-09-28 09:17:54 +09:00
Yukihiro "Matz" Matsumoto
2e3b482aa9
array.c, string.c: remove length limits on UNIX-ish OSes
...
- Linux
- MacOS
- FreeBSD
- OpenBSD
Send us a pull-request if you want to add your favorite OS here.
The size limitation will be done by malloc(3) on those OSes.
2023-09-23 19:57:44 +09:00
Yukihiro "Matz" Matsumoto
ec3baece4f
vm.c (catch_handler_find): check if irep is NULL; fix #6052
2023-09-19 14:22:49 +09:00
Yukihiro "Matz" Matsumoto
75e8a72649
vm.c (CI_PROC_SET): check whether p->body.irep is not NULL; ref #6052
2023-09-19 14:22:49 +09:00
Yukihiro "Matz" Matsumoto
4810706ccc
vm.c: refactor redundant if conditions
2023-09-16 14:49:58 +09:00
Yukihiro "Matz" Matsumoto
e8254eda42
gc.c: update comment for flexible array members (C++ incompatible) [ci skip]
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
4fe8b074bb
gc.c: remove prev link from mrb_heap_page
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
44b5153360
gc.c: revert af68de52dddd80afe1620c45680eb055767a412f
...
The change increased memory consumption significantly
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
22e74a7ee5
gc.c: experiment before removing page->prev link
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
9b90fd4f60
gc.c (incremental_sweep_phase): rebuild free pages link only if needed
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
9f840e111a
gc.c: inline unlink_heap_page which was called only once
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
0f69e93664
gc.c: inline link_heap_page which was called once
2023-09-15 13:33:51 +09:00
Yukihiro "Matz" Matsumoto
117fcfc8e9
gc.c: stop using bidirectional link for free_heaps
...
Reduce size of the heap pages again; ref #6041
2023-09-15 13:33:51 +09:00
Yukihiro "Matz" Matsumoto
d708931b10
gc.c: revert 38b9a25e83
...
Fix #6041
2023-09-09 14:31:13 +09:00
Yukihiro "Matz" Matsumoto
5eddccf89a
gc.c: remove unnecessary symbol local variables
2023-09-08 14:15:54 +09:00
Yukihiro "Matz" Matsumoto
e8841fbf58
gc.h: move mrb_heap_page definition to gc.c
2023-09-05 23:29:24 +09:00
Yukihiro "Matz" Matsumoto
acf5b74daa
vm.c (ary_new_from_regs): avoid mrb_ary_push()
...
Use mrb_ary_new_from_values(), which is faster instead.
2023-09-05 23:29:23 +09:00
Yukihiro "Matz" Matsumoto
9914243d68
vm.c: use direct array access if possible
2023-09-05 23:29:23 +09:00
Yukihiro "Matz" Matsumoto
0eef05cc00
array.c (mrb_ary_to_s): use direct array access
2023-09-05 23:29:23 +09:00
Yukihiro "Matz" Matsumoto
b85b6822b2
hash.c (mrb_hash_aset): avoid slower mrb_get_args()
2023-08-26 22:30:20 +09:00
Yukihiro "Matz" Matsumoto
0578e518e6
src/vm.c: adjust mrb_gc_protect() for kdict argument
...
It was called repeatedly in some cases.
2023-08-25 23:12:08 +09:00
Yukihiro "Matz" Matsumoto
182c06a46b
codedump.c: fflush() output
2023-08-21 17:27:03 +09:00
Yukihiro "Matz" Matsumoto
12bd395012
fmt_fp.c: revert 647324ad45c0d779a3c36f0bb7955b8b8fc9f491
...
C++ complier does not allow jump across local variable declaration, even
if we don't access those variables after the destination label.
2023-08-08 11:24:15 +09:00
Yukihiro "Matz" Matsumoto
8591211494
dump.c (mrb_dump_irep): remove a function which only delegates
2023-08-08 11:24:14 +09:00
Yukihiro "Matz" Matsumoto
ceb5086eb3
fmt_fp.c: unify returning code
2023-08-08 11:24:14 +09:00
Yukihiro "Matz" Matsumoto
0542d6bad4
debug.c (mrb_packed_int_encode): remove end argument
...
The function requires the buffer bigger than `mrb_packed_int_len()`
anyway, so we don't need boundary checks for each iteration. Should
makes the function a little bit faster.
2023-07-28 17:05:38 +09:00
Yukihiro "Matz" Matsumoto
5d0016186f
numeric.c (mrb_float_to_str): avoid memcpy()
2023-07-24 18:03:38 +09:00
Yukihiro "Matz" Matsumoto
5e7d763e91
variable.c (mrb_obj_iv_set_force): check namespace_p beforehand
...
To reduce number of assign_class_name() invocation.
2023-07-17 12:09:28 +09:00
Yukihiro "Matz" Matsumoto
82a48bd455
error.c (mrb_bug): avoid formatting in mrb_bug()
...
Since mrb_bug() would be called under the abnormal situation (and should
not be called if possible), the process should be minimal.
2023-07-14 21:48:11 +09:00
Yukihiro "Matz" Matsumoto
d6d434eb3f
Inline loop variables everywhere
2023-07-13 08:05:00 +09:00
Yukihiro "Matz" Matsumoto
2af0ff52e9
backtrace.c (count_backtrace_i): remove empty callback
...
Instead specifying NULL as function argument of each_backtrace()
count the number of callbacks.
2023-07-11 07:17:19 +09:00
Yukihiro "Matz" Matsumoto
6f99806d5b
backtrace.c (packed_backtrace): remove count_backtrace()
...
Since we have stop calling mrb_debug_get_position() in each_backtrace(),
we don't need to craft special function count_backtrace(). We just use
each_backtrace() to count the number of backtraces.
2023-07-11 06:59:09 +09:00
Yukihiro "Matz" Matsumoto
316119069d
backtrace.c (each_backtrace): skip callinfo without debug_info
2023-07-10 07:57:02 +09:00
Yukihiro "Matz" Matsumoto
7aa914b4d4
cdump.c (cdump_debug): restore arena index at the end of the function
2023-07-10 07:26:19 +09:00
Yukihiro "Matz" Matsumoto
c57610ad8a
backtrace.c (packed_backtrace): fix broken ciidx
...
- fix at higher level to remove redundancy
- ciidx should always be smaller than ci stack length
2023-07-10 07:05:27 +09:00
Yukihiro "Matz" Matsumoto
9c61c66045
gc.c (mrb_obj_alloc): clarify the heap initialization
2023-07-09 22:59:58 +09:00
Yukihiro "Matz" Matsumoto
eebbc6eaa4
gc.c (mrb_obj_alloc): gc->heaps may be NULL
2023-07-07 06:53:19 +09:00
Yukihiro "Matz" Matsumoto
af85b1fbed
gc.c (gc_mark_gray_list): cut gcnext link
2023-07-06 22:57:14 +09:00
Yukihiro "Matz" Matsumoto
aa5ffb686f
mruby-os-memsize: more precise memory size for method tables
2023-07-06 16:12:51 +09:00
Yukihiro "Matz" Matsumoto
0558b1abd8
backtrace.c: reorder functions for clarity
2023-07-03 15:26:45 +09:00
Yukihiro "Matz" Matsumoto
97b60e7fb1
backtrace.c (backtrace_location): defer retrieving positions
...
Instead of calling `mrb_debug_get_position` in the `each_backtrace`, we
just keep `irep` and `idx` information in the backtrace_location, and
get the exact position in `mrb_unpack_backtrace` which may not be called
if exceptions are handled in the `rescue` clauses.
2023-07-03 15:21:16 +09:00
Yukihiro "Matz" Matsumoto
40bdd65ce6
backtrace.c (each_backtrace): return number of traces iterated
2023-07-03 15:20:24 +09:00
Yukihiro "Matz" Matsumoto
70b49eaef2
debug.c (debug_get_line): remove obsolete debug line types
...
- mrb_debug_line_ary
- mrb_debug_line_flat_map
Those two are no longer used, so we can safely remove the support.
2023-07-03 15:16:29 +09:00
Yukihiro "Matz" Matsumoto
0c4f5a4093
backtrace.c (mrb_unpack_backtrace): make the function static
2023-06-29 22:54:09 +09:00
Yukihiro "Matz" Matsumoto
e563a3cb2c
backtrace.c (packed_backtrace): reduce unnecessary calls
...
Instead of calling each_backtrace() twice, use a new function
count_backtrace().
2023-06-28 21:53:17 +09:00
Yukihiro "Matz" Matsumoto
f1d6af08cf
gc.c: inline heap page linkage
2023-06-27 15:48:33 +09:00
Yukihiro "Matz" Matsumoto
38b9a25e83
gc.c (mrb_obj_alloc): remove free_next,free_prev from heap pages
...
It used to be maintain heap pages with allocatable objects (free_heaps)
but we can save two words (16 bytes) per page by scanning live heap pages.
2023-06-27 15:48:25 +09:00