Commit Graph

5564 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto c22fbb2aa7 Merge pull request #6076 from dearblue/fiber-unwinding
Fixed unwinding block that could point to invalid PC
2023-10-13 20:33:03 +07:00
Yukihiro "Matz" Matsumoto 4c696ed9e3 array.c: set array size limitation again
Unlike strings, arrays occupies more memory. It is still arguable
whether the current limit (131072) is appropriate.
2023-10-13 18:01:21 +09:00
Yukihiro "Matz" Matsumoto 3277cc9ce1 numeric.c (int_to_s): avoid mrb_get_args() 2023-10-11 20:32:09 +09:00
Yukihiro "Matz" Matsumoto 717f91e5c6 array.c (mrb_ary_last): avoid mrb_get_args() 2023-10-11 20:31:23 +09:00
Yukihiro "Matz" Matsumoto fae8e55396 pool.c (mrb_pool_realloc): add comments in reallocation code 2023-10-11 13:39:53 +09:00
Yukihiro "Matz" Matsumoto 64e08c6d99 pool.c: add cast to void* 2023-10-11 13:38:59 +09:00
Yukihiro "Matz" Matsumoto 5d53c2b951 pool.c: remove unused mrb_pool_can_realloc() 2023-10-10 22:31:34 +09:00
Yukihiro "Matz" Matsumoto a538837fb1 pool.c (mrb_pool_realloc): do nothing if realloc() tries to shrink 2023-10-10 22:17:30 +09:00
dearblue e7828bac4d Fixed unwinding block that could point to invalid PC
Switching back from a fiber with an exception could point to an invalid PC.
The investigation was inspired by #6060.
2023-10-10 21:29:38 +09:00
Yukihiro "Matz" Matsumoto 42a621b42e pool.c: small refactoring regarding local variable declarations 2023-10-10 14:49:19 +09:00
John Bampton 24ac7a547a Fix spelling 2023-10-04 01:17:23 +10:00
Yukihiro "Matz" Matsumoto 83d12f8d52 vm.c: GCC does not provide __has_feature() 2023-10-03 01:05:26 +09:00
Yukihiro "Matz" Matsumoto b9536ea35f vm.c: use smaller MRB_CALL_LEVEL_MAX with address sanitizer; fix #6068
Since ASAN uses lower memory bound. The other ideas to address #6068
might follow, e.g. removing `args=` from Enumerator.
2023-10-02 21:15:54 +09:00
Yukihiro "Matz" Matsumoto 67f1f0997c Merge pull request #6070 from komainu8/demotion-mrb_f_raise-from-mrb_api
Demotion mrb_f_raise() in kernel.c from MRB_API too
2023-09-28 14:22:19 +09:00
Yukihiro "Matz" Matsumoto 10aab4cc1b proc.c: prohibit direct Proc allocation() like CRuby; ref #6065 2023-09-28 11:37:46 +09:00
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