fix bug in file-not-found due to incomplete init of the ios_t

This commit is contained in:
Jeff Bezanson 2014-05-22 18:09:49 -04:00 committed by Lassi Kortela
parent 8dba83c8cd
commit 1ca42ea732
2 changed files with 3 additions and 6 deletions

View File

@ -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,

View File

@ -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;