diff options
author | Peter Zhu <[email protected]> | 2024-03-22 10:48:01 -0400 |
---|---|---|
committer | Peter Zhu <[email protected]> | 2024-03-25 13:07:39 -0400 |
commit | 9cf754b648bc04f0c1e8f9274e6047ff25c1b3e3 (patch) | |
tree | 8770d604b864fb5d2827397089526617f7e7b996 /debug.c | |
parent | 46bf6ae886dc14d5e3a76d53eb4f97375f7c03c5 (diff) |
Fix --debug=gc_stress flag
ruby_env_debug_option gets called after Init_gc_stress, so the
--debug=gc_stress flag never works.
Diffstat (limited to 'debug.c')
-rw-r--r-- | debug.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -185,9 +185,9 @@ ruby_env_debug_option(const char *str, int len, void *arg) int ov; size_t retlen; unsigned long n; +#define NAME_MATCH(name) (len == sizeof(name) - 1 && strncmp(str, (name), len) == 0) #define SET_WHEN(name, var, val) do { \ - if (len == sizeof(name) - 1 && \ - strncmp(str, (name), len) == 0) { \ + if (NAME_MATCH(name)) { \ (var) = (val); \ return 1; \ } \ @@ -221,7 +221,10 @@ ruby_env_debug_option(const char *str, int len, void *arg) #define SET_WHEN_UINT(name, vals, num, req) \ if (NAME_MATCH_VALUE(name)) SET_UINT_LIST(name, vals, num); - SET_WHEN("gc_stress", *ruby_initial_gc_stress_ptr, Qtrue); + if (NAME_MATCH("gc_stress")) { + rb_gc_stress_set(Qtrue); + return 1; + } SET_WHEN("core", ruby_enable_coredump, 1); SET_WHEN("ci", ruby_on_ci, 1); if (NAME_MATCH_VALUE("rgengc")) { |