diff --git a/libos/src/File.cpp b/libos/src/File.cpp index 0c8fe70e..33155dbc 100644 --- a/libos/src/File.cpp +++ b/libos/src/File.cpp @@ -154,18 +154,18 @@ namespace os Result File::read_all() { - Vector data; + Buffer data; + + u8 buf[2048]; while (true) { - int c = TRY(getchar()); - if (c == -1) break; - TRY(data.try_append((u8)c)); + usize nread = TRY(raw_read(buf, sizeof(buf))); + TRY(data.append_data(buf, nread)); + if (nread < sizeof(buf)) break; } - Buffer buf; - TRY(buf.append_data(data.data(), data.size())); - return buf; + return data; } Result File::read(Buffer& buf, usize size)