Tidy up rb_io_fptr_finalize. (#13136)

This commit is contained in:
Samuel Williams 2025-04-19 19:16:54 +09:00 committed by GitHub
parent 0f25886fac
commit d6d4e6877c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
Notes: git 2025-04-19 10:17:09 +00:00
Merged-By: ioquatix <samuel@codeotaku.com>
2 changed files with 8 additions and 18 deletions

View File

@ -125,6 +125,8 @@ VALUE rb_io_prep_stdin(void);
VALUE rb_io_prep_stdout(void);
VALUE rb_io_prep_stderr(void);
int rb_io_fptr_finalize(struct rb_io *fptr);
RUBY_SYMBOL_EXPORT_BEGIN
/* io.c (export) */
void rb_maygvl_fd_fix_cloexec(int fd);

24
io.c
View File

@ -5674,27 +5674,15 @@ rb_io_fptr_cleanup_all(rb_io_t *fptr)
clear_codeconv(fptr);
}
void
rb_io_fptr_finalize_internal(void *ptr)
{
if (!ptr) return;
rb_io_fptr_cleanup_all(ptr);
free(ptr);
}
#undef rb_io_fptr_finalize
int
rb_io_fptr_finalize(rb_io_t *fptr)
rb_io_fptr_finalize(struct rb_io *io)
{
if (!fptr) {
return 0;
}
else {
rb_io_fptr_finalize_internal(fptr);
return 1;
}
if (!io) return 0;
rb_io_fptr_cleanup_all(io);
free(io);
return 1;
}
#define rb_io_fptr_finalize(fptr) rb_io_fptr_finalize_internal(fptr)
size_t
rb_io_memsize(const rb_io_t *fptr)