Skip to content

Commit bb5fdce

Browse files
committed
Simplify rb_io_fptr_finalize usage.
1 parent 6516d14 commit bb5fdce

File tree

4 files changed

+11
-28
lines changed

4 files changed

+11
-28
lines changed

gc.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3145,11 +3145,17 @@ make_zombie(rb_objspace_t *objspace, VALUE obj, void (*dfree)(void *), void *dat
31453145
heap_pages_final_slots++;
31463146
}
31473147

3148+
static void
3149+
io_fptr_finalize(void *fptr)
3150+
{
3151+
rb_io_fptr_finalize((struct rb_io *)fptr);
3152+
}
3153+
31483154
static inline void
31493155
make_io_zombie(rb_objspace_t *objspace, VALUE obj)
31503156
{
31513157
rb_io_t *fptr = RANY(obj)->as.file.fptr;
3152-
make_zombie(objspace, obj, rb_io_fptr_finalize_internal, fptr);
3158+
make_zombie(objspace, obj, io_fptr_finalize, fptr);
31533159
}
31543160

31553161
static void

internal.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,6 @@
6363
/* internal/array.h */
6464
#define rb_ary_new_from_args(...) rb_nonexistent_symbol(__VA_ARGS__)
6565

66-
/* internal/io.h */
67-
#define rb_io_fptr_finalize(...) rb_nonexistent_symbol(__VA_ARGS__)
68-
6966
/* internal/string.h */
7067
#define rb_fstring_cstr(...) rb_nonexistent_symbol(__VA_ARGS__)
7168

internal/io.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,6 @@ void rb_stdio_set_default_encoding(void);
140140
VALUE rb_io_flush_raw(VALUE, int);
141141
size_t rb_io_memsize(const rb_io_t *);
142142
int rb_stderr_tty_p(void);
143-
void rb_io_fptr_finalize_internal(void *ptr);
144-
#ifdef rb_io_fptr_finalize
145-
# undef rb_io_fptr_finalize
146-
#endif
147-
#define rb_io_fptr_finalize rb_io_fptr_finalize_internal
148143
VALUE rb_io_popen(VALUE pname, VALUE pmode, VALUE env, VALUE opt);
149144

150145
VALUE rb_io_prep_stdin(void);

io.c

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5455,12 +5455,10 @@ clear_codeconv(rb_io_t *fptr)
54555455
clear_writeconv(fptr);
54565456
}
54575457

5458-
void
5459-
rb_io_fptr_finalize_internal(void *ptr)
5458+
int
5459+
rb_io_fptr_finalize(struct rb_io *fptr)
54605460
{
5461-
rb_io_t *fptr = ptr;
5462-
5463-
if (!ptr) return;
5461+
if (!fptr) return 0;
54645462
fptr->pathv = Qnil;
54655463
if (0 <= fptr->fd)
54665464
rb_io_fptr_cleanup(fptr, TRUE);
@@ -5469,22 +5467,9 @@ rb_io_fptr_finalize_internal(void *ptr)
54695467
io_internal_buffer_free(&fptr->wbuf);
54705468
clear_codeconv(fptr);
54715469
free(fptr);
5470+
return 1;
54725471
}
54735472

5474-
#undef rb_io_fptr_finalize
5475-
int
5476-
rb_io_fptr_finalize(rb_io_t *fptr)
5477-
{
5478-
if (!fptr) {
5479-
return 0;
5480-
}
5481-
else {
5482-
rb_io_fptr_finalize_internal(fptr);
5483-
return 1;
5484-
}
5485-
}
5486-
#define rb_io_fptr_finalize(fptr) rb_io_fptr_finalize_internal(fptr)
5487-
54885473
RUBY_FUNC_EXPORTED size_t
54895474
rb_io_memsize(const rb_io_t *fptr)
54905475
{

0 commit comments

Comments
 (0)