mirror of https://github.com/python/cpython
Change error handling. Call clearerr() more often.
This commit is contained in:
parent
299a734744
commit
febd551bab
|
@ -164,11 +164,8 @@ file_close(f, args)
|
||||||
sts = (*f->f_close)(f->f_fp);
|
sts = (*f->f_close)(f->f_fp);
|
||||||
f->f_fp = NULL;
|
f->f_fp = NULL;
|
||||||
}
|
}
|
||||||
if (sts == EOF) {
|
if (sts == EOF)
|
||||||
if (errno == 0)
|
|
||||||
errno = EIO;
|
|
||||||
return err_errno(IOError);
|
return err_errno(IOError);
|
||||||
}
|
|
||||||
if (sts != 0)
|
if (sts != 0)
|
||||||
return newintobject((long)sts);
|
return newintobject((long)sts);
|
||||||
INCREF(None);
|
INCREF(None);
|
||||||
|
@ -197,9 +194,9 @@ file_seek(f, args)
|
||||||
}
|
}
|
||||||
errno = 0;
|
errno = 0;
|
||||||
if (fseek(f->f_fp, offset, (int)whence) != 0) {
|
if (fseek(f->f_fp, offset, (int)whence) != 0) {
|
||||||
if (errno == 0)
|
err_errno(IOError);
|
||||||
errno = EIO;
|
clearerr(f->f_fp);
|
||||||
return err_errno(IOError);
|
return NULL;
|
||||||
}
|
}
|
||||||
INCREF(None);
|
INCREF(None);
|
||||||
return None;
|
return None;
|
||||||
|
@ -218,9 +215,9 @@ file_tell(f, args)
|
||||||
errno = 0;
|
errno = 0;
|
||||||
offset = ftell(f->f_fp);
|
offset = ftell(f->f_fp);
|
||||||
if (offset == -1L) {
|
if (offset == -1L) {
|
||||||
if (errno == 0)
|
err_errno(IOError);
|
||||||
errno = EIO;
|
clearerr(f->f_fp);
|
||||||
return err_errno(IOError);
|
return NULL;
|
||||||
}
|
}
|
||||||
return newintobject(offset);
|
return newintobject(offset);
|
||||||
}
|
}
|
||||||
|
@ -236,9 +233,9 @@ file_flush(f, args)
|
||||||
}
|
}
|
||||||
errno = 0;
|
errno = 0;
|
||||||
if (fflush(f->f_fp) != 0) {
|
if (fflush(f->f_fp) != 0) {
|
||||||
if (errno == 0)
|
err_errno(IOError);
|
||||||
errno = EIO;
|
clearerr(f->f_fp);
|
||||||
return err_errno(IOError);
|
return NULL;
|
||||||
}
|
}
|
||||||
INCREF(None);
|
INCREF(None);
|
||||||
return None;
|
return None;
|
||||||
|
@ -455,9 +452,8 @@ file_write(f, args)
|
||||||
errno = 0;
|
errno = 0;
|
||||||
n2 = fwrite(getstringvalue(args), 1, n = getstringsize(args), f->f_fp);
|
n2 = fwrite(getstringvalue(args), 1, n = getstringsize(args), f->f_fp);
|
||||||
if (n2 != n) {
|
if (n2 != n) {
|
||||||
if (errno == 0)
|
|
||||||
errno = EIO;
|
|
||||||
err_errno(IOError);
|
err_errno(IOError);
|
||||||
|
clearerr(f->f_fp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
INCREF(None);
|
INCREF(None);
|
||||||
|
|
Loading…
Reference in New Issue