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