diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-12-12 07:42:35 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-12-12 07:42:35 +0000 |
commit | 3a7020854d43c4d29ca5cd9013e3af139f378548 (patch) | |
tree | 2a73f7f17fa97d74f5580248e39f39765747d573 /io.c | |
parent | 2322a131272f705139fb1e6bbcf1d85a0205e8b0 (diff) |
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -1013,13 +1013,10 @@ fptr_finalize(fptr) } } -void -rb_io_fptr_finalize(fptr) +static void +rb_io_fptr_cleanup(fptr) OpenFile *fptr; { - if (!fptr) return; - if (!fptr->f && !fptr->f2) return; - if (fptr->finalize) { (*fptr->finalize)(fptr); } @@ -1034,6 +1031,17 @@ rb_io_fptr_finalize(fptr) } } +void +rb_io_fptr_finalize(fptr) + OpenFile *fptr; +{ + if (!fptr) return; + if (!fptr->f && !fptr->f2) return; + if (fileno(fptr->f) < 3) return; + + rb_io_fptr_cleanup(fptr); +} + static void rb_io_fptr_close(fptr) OpenFile *fptr; @@ -1044,7 +1052,7 @@ rb_io_fptr_close(fptr) if (!fptr->f && !fptr->f2) return; fd = fileno(fptr->f); - rb_io_fptr_finalize(fptr); + rb_io_fptr_cleanup(fptr); rb_thread_fd_close(fd); } |