diff options
author | Mike Pall <mike> | 2013-03-04 13:34:01 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2013-03-04 13:34:01 +0100 |
commit | b2edd5cf2887b8132aeed4feb476ba49cdc3fe3b (patch) | |
tree | 0dca9bd0f7794416e256fe9e720f54969d660699 | |
parent | b65196b7fd3b1f67d54c7d48f522d7d682d0c545 (diff) | |
parent | dac2825e9d626d910fc2657d1d9b68d225f18b57 (diff) | |
download | luajit-b2edd5cf2887b8132aeed4feb476ba49cdc3fe3b.tar.gz luajit-b2edd5cf2887b8132aeed4feb476ba49cdc3fe3b.tar.bz2 luajit-b2edd5cf2887b8132aeed4feb476ba49cdc3fe3b.zip |
Merge branch 'master' into v2.1
Diffstat (limited to '')
-rw-r--r-- | src/lib_io.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lib_io.c b/src/lib_io.c index e9472ba5..5369d450 100644 --- a/src/lib_io.c +++ b/src/lib_io.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include "lualib.h" | 17 | #include "lualib.h" |
18 | 18 | ||
19 | #include "lj_obj.h" | 19 | #include "lj_obj.h" |
20 | #include "lj_gc.h" | ||
20 | #include "lj_err.h" | 21 | #include "lj_err.h" |
21 | #include "lj_buf.h" | 22 | #include "lj_buf.h" |
22 | #include "lj_str.h" | 23 | #include "lj_str.h" |
@@ -153,6 +154,7 @@ static int io_file_readline(lua_State *L, FILE *fp, MSize chop) | |||
153 | if (n >= m - 64) m += m; | 154 | if (n >= m - 64) m += m; |
154 | } | 155 | } |
155 | setstrV(L, L->top++, lj_str_new(L, buf, (size_t)n)); | 156 | setstrV(L, L->top++, lj_str_new(L, buf, (size_t)n)); |
157 | lj_gc_check(L); | ||
156 | return (int)ok; | 158 | return (int)ok; |
157 | } | 159 | } |
158 | 160 | ||
@@ -164,6 +166,7 @@ static void io_file_readall(lua_State *L, FILE *fp) | |||
164 | n += (MSize)fread(buf+n, 1, m-n, fp); | 166 | n += (MSize)fread(buf+n, 1, m-n, fp); |
165 | if (n != m) { | 167 | if (n != m) { |
166 | setstrV(L, L->top++, lj_str_new(L, buf, (size_t)n)); | 168 | setstrV(L, L->top++, lj_str_new(L, buf, (size_t)n)); |
169 | lj_gc_check(L); | ||
167 | return; | 170 | return; |
168 | } | 171 | } |
169 | } | 172 | } |
@@ -175,6 +178,7 @@ static int io_file_readlen(lua_State *L, FILE *fp, MSize m) | |||
175 | char *buf = lj_buf_tmp(L, m); | 178 | char *buf = lj_buf_tmp(L, m); |
176 | MSize n = (MSize)fread(buf, 1, m, fp); | 179 | MSize n = (MSize)fread(buf, 1, m, fp); |
177 | setstrV(L, L->top++, lj_str_new(L, buf, (size_t)n)); | 180 | setstrV(L, L->top++, lj_str_new(L, buf, (size_t)n)); |
181 | lj_gc_check(L); | ||
178 | return (n > 0 || m == 0); | 182 | return (n > 0 || m == 0); |
179 | } else { | 183 | } else { |
180 | int c = getc(fp); | 184 | int c = getc(fp); |