1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

merge revision(s) 292230cbf9:

Fixed leaked global symbols

	---
	 gc.c            | 14 +++++++++-----
	 vm_insnhelper.c |  7 ++++---
	 vm_insnhelper.h |  2 +-
	 vm_sync.c       |  4 ++--
	 vm_sync.h       |  6 ++++--
	 5 files changed, 20 insertions(+), 13 deletions(-)
This commit is contained in:
nagachika 2021-07-25 14:51:32 +09:00
parent 0a5f22cc42
commit e2aaed044e
6 changed files with 21 additions and 14 deletions

14
gc.c
View file

@ -4636,7 +4636,7 @@ static void read_barrier_handler(intptr_t address)
}
#if defined(_WIN32)
LPTOP_LEVEL_EXCEPTION_FILTER old_handler;
static LPTOP_LEVEL_EXCEPTION_FILTER old_handler;
typedef void (*signal_handler)(int);
static signal_handler old_sigsegv_handler;
@ -4655,13 +4655,15 @@ static LONG WINAPI read_barrier_signal(EXCEPTION_POINTERS * info)
}
}
static void uninstall_handlers(void)
static void
uninstall_handlers(void)
{
signal(SIGSEGV, old_sigsegv_handler);
SetUnhandledExceptionFilter(old_handler);
}
static void install_handlers(void)
static void
install_handlers(void)
{
/* Remove SEGV handler so that the Unhandled Exception Filter handles it */
old_sigsegv_handler = signal(SIGSEGV, NULL);
@ -4697,13 +4699,15 @@ read_barrier_signal(int sig, siginfo_t * info, void * data)
sigprocmask(SIG_SETMASK, &prev_set, NULL);
}
static void uninstall_handlers(void)
static void
uninstall_handlers(void)
{
sigaction(SIGBUS, &old_sigbus_handler, NULL);
sigaction(SIGSEGV, &old_sigsegv_handler, NULL);
}
static void install_handlers(void)
static void
install_handlers(void)
{
struct sigaction action;
memset(&action, 0, sizeof(struct sigaction));

View file

@ -12,7 +12,7 @@
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
#define RUBY_VERSION_TEENY 3
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
#define RUBY_PATCHLEVEL 115
#define RUBY_PATCHLEVEL 116
#define RUBY_RELEASE_YEAR 2021
#define RUBY_RELEASE_MONTH 7

View file

@ -237,7 +237,7 @@ static bool vm_stack_canary_was_born = false;
#ifndef MJIT_HEADER
MJIT_FUNC_EXPORTED void
vm_check_canary(const rb_execution_context_t *ec, VALUE *sp)
rb_vm_check_canary(const rb_execution_context_t *ec, VALUE *sp)
{
const struct rb_control_frame_struct *reg_cfp = ec->cfp;
const struct rb_iseq_struct *iseq;
@ -284,6 +284,7 @@ vm_check_canary(const rb_execution_context_t *ec, VALUE *sp)
rb_bug("see above.");
}
#endif
#define vm_check_canary(ec, sp) rb_vm_check_canary(ec, sp)
#else
#define vm_check_canary(ec, sp)
@ -5377,7 +5378,7 @@ vm_trace(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp)
#if VM_CHECK_MODE > 0
NORETURN( NOINLINE( COLDFUNC
void vm_canary_is_found_dead(enum ruby_vminsn_type i, VALUE c)));
void rb_vm_canary_is_found_dead(enum ruby_vminsn_type i, VALUE c)));
void
Init_vm_stack_canary(void)
@ -5392,7 +5393,7 @@ Init_vm_stack_canary(void)
#ifndef MJIT_HEADER
MJIT_FUNC_EXPORTED void
vm_canary_is_found_dead(enum ruby_vminsn_type i, VALUE c)
rb_vm_canary_is_found_dead(enum ruby_vminsn_type i, VALUE c)
{
/* Because a method has already been called, why not call
* another one. */

View file

@ -153,7 +153,7 @@ CC_SET_FASTPATH(const struct rb_callcache *cc, vm_call_handler func, bool enable
*canary = Qfalse; /* cleanup */ \
} \
else { \
vm_canary_is_found_dead(insn, *canary); \
rb_vm_canary_is_found_dead(insn, *canary); \
} \
}
#else

View file

@ -14,7 +14,7 @@ vm_locked(rb_vm_t *vm)
#if RUBY_DEBUG > 0
void
ASSERT_vm_locking(void)
RUBY_ASSERT_vm_locking(void)
{
if (rb_multi_ractor_p()) {
rb_vm_t *vm = GET_VM();
@ -23,7 +23,7 @@ ASSERT_vm_locking(void)
}
void
ASSERT_vm_unlocking(void)
RUBY_ASSERT_vm_unlocking(void)
{
if (rb_multi_ractor_p()) {
rb_vm_t *vm = GET_VM();

View file

@ -126,8 +126,10 @@ rb_vm_lock_leave_cr(struct rb_ractor_struct *cr, unsigned int *levp, const char
#define RB_VM_LOCK_LEAVE_NO_BARRIER() RB_VM_LOCK_LEAVE_LEV(&_lev); }
#if RUBY_DEBUG > 0
void ASSERT_vm_locking(void);
void ASSERT_vm_unlocking(void);
void RUBY_ASSERT_vm_locking(void);
void RUBY_ASSERT_vm_unlocking(void);
#define ASSERT_vm_locking() RUBY_ASSERT_vm_locking()
#define ASSERT_vm_unlocking() RUBY_ASSERT_vm_unlocking()
#else
#define ASSERT_vm_locking()
#define ASSERT_vm_unlocking()