diff options
| author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-04 15:03:37 +0000 |
|---|---|---|
| committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-04 15:03:37 +0000 |
| commit | b121cfde5fbc8cd20684a5fd94047f40323a8353 (patch) | |
| tree | 0ff882124c58f8de066cbfc4da456f831a3056ac | |
| parent | b4d935455f585d50ceff259efe6ed746b4a1a997 (diff) | |
nobody is using the return value of rb_io_fptr_finalize
However this function is listed in ruby/io.h. We cannot but
define a new, void-returning variant to use instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | internal.h | 2 | ||||
| -rw-r--r-- | io.c | 25 |
2 files changed, 22 insertions, 5 deletions
diff --git a/internal.h b/internal.h index 85370ec0d7..6cab3d4ffd 100644 --- a/internal.h +++ b/internal.h @@ -1348,6 +1348,8 @@ VALUE rb_io_flush_raw(VALUE, int); size_t rb_io_memsize(const rb_io_t *); #endif int rb_stderr_tty_p(void); +void rb_io_fptr_finalize_internal(void *ptr); +#define rb_io_fptr_finalize rb_io_fptr_finalize_internal /* load.c */ VALUE rb_get_load_path(void); @@ -4629,21 +4629,36 @@ clear_codeconv(rb_io_t *fptr) clear_writeconv(fptr); } -int -rb_io_fptr_finalize(rb_io_t *fptr) +void +rb_io_fptr_finalize_internal(void *ptr) { - if (!fptr) return 0; + rb_io_t *fptr = ptr; + + if (!ptr) return; fptr->pathv = Qnil; if (0 <= fptr->fd) - rb_io_fptr_cleanup(fptr, TRUE); + rb_io_fptr_cleanup(fptr, TRUE); fptr->write_lock = 0; free_io_buffer(&fptr->rbuf); free_io_buffer(&fptr->wbuf); clear_codeconv(fptr); free(fptr); - return 1; } +#undef rb_io_fptr_finalize +int +rb_io_fptr_finalize(rb_io_t *fptr) +{ + if (!fptr) { + return 0; + } + else { + rb_io_fptr_finalize_internal(fptr); + return 1; + } +} +#define rb_io_fptr_finalize(fptr) rb_io_fptr_finalize_internal(fptr) + RUBY_FUNC_EXPORTED size_t rb_io_memsize(const rb_io_t *fptr) { |
