fix bug in file-not-found due to incomplete init of the ios_t
This commit is contained in:
parent
27b18d04d0
commit
8f04eea847
|
@ -28,12 +28,9 @@ void relocate_iostream(value_t oldv, value_t newv)
|
|||
{
|
||||
ios_t *olds = value2c(ios_t*, oldv);
|
||||
ios_t *news = value2c(ios_t*, newv);
|
||||
cvalue_t *cv = (cvalue_t*)ptr(oldv);
|
||||
if (isinlined(cv)) {
|
||||
if (olds->buf == &olds->local[0]) {
|
||||
if (news->buf == &olds->local[0]) {
|
||||
news->buf = &news->local[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cvtable_t iostream_vtable = { print_iostream, relocate_iostream,
|
||||
|
|
|
@ -752,9 +752,9 @@ ios_t *ios_file(ios_t *s, char *fname, int rd, int wr, int create, int trunc)
|
|||
if (create) flags |= O_CREAT;
|
||||
if (trunc) flags |= O_TRUNC;
|
||||
fd = open(fname, flags, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH/*644*/);
|
||||
s = ios_fd(s, fd, 1, 1);
|
||||
if (fd == -1)
|
||||
goto open_file_err;
|
||||
s = ios_fd(s, fd, 1, 1);
|
||||
if (!wr)
|
||||
s->readonly = 1;
|
||||
return s;
|
||||
|
|
Loading…
Reference in New Issue