From bea28086c57f68b4e0b7e278da7472e8bfef9c87 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Sat, 19 Apr 2025 10:20:18 +0900 Subject: [PATCH] Tidy up `rb_io_fptr_finalize`. --- internal/io.h | 2 ++ io.c | 24 ++++++------------------ 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/internal/io.h b/internal/io.h index f564eb133023c8..0fcb72ffab89ab 100644 --- a/internal/io.h +++ b/internal/io.h @@ -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); diff --git a/io.c b/io.c index a8565e2559eb03..7f4efca8da3b5a 100644 --- a/io.c +++ b/io.c @@ -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)