fix buffer write performance on Windows and Unix

This commit is contained in:
Marcin Zawiejski 2018-02-04 13:23:23 +01:00
parent ea99b90a77
commit 8315aa40cc
4 changed files with 12 additions and 0 deletions

View File

@ -236,6 +236,11 @@ void FileAccessUnix::store_8(uint8_t p_dest) {
ERR_FAIL_COND(fwrite(&p_dest, 1, 1, f) != 1); ERR_FAIL_COND(fwrite(&p_dest, 1, 1, f) != 1);
} }
void FileAccessUnix::store_buffer(const uint8_t *p_src, int p_length) {
ERR_FAIL_COND(!f);
ERR_FAIL_COND(fwrite(p_src, 1, p_length, f) != p_length);
}
bool FileAccessUnix::file_exists(const String &p_path) { bool FileAccessUnix::file_exists(const String &p_path) {
int err; int err;

View File

@ -75,6 +75,7 @@ public:
virtual void flush(); virtual void flush();
virtual void store_8(uint8_t p_dest); ///< store a byte virtual void store_8(uint8_t p_dest); ///< store a byte
virtual void store_buffer(const uint8_t *p_src, int p_length); ///< store an array of bytes
virtual bool file_exists(const String &p_path); ///< return true if a file exists virtual bool file_exists(const String &p_path); ///< return true if a file exists

View File

@ -235,6 +235,11 @@ void FileAccessWindows::store_8(uint8_t p_dest) {
fwrite(&p_dest, 1, 1, f); fwrite(&p_dest, 1, 1, f);
} }
void FileAccessWindows::store_buffer(const uint8_t *p_src, int p_length) {
ERR_FAIL_COND(!f);
ERR_FAIL_COND(fwrite(p_src, 1, p_length, f) != p_length);
}
bool FileAccessWindows::file_exists(const String &p_name) { bool FileAccessWindows::file_exists(const String &p_name) {
FILE *g; FILE *g;

View File

@ -67,6 +67,7 @@ public:
virtual void flush(); virtual void flush();
virtual void store_8(uint8_t p_dest); ///< store a byte virtual void store_8(uint8_t p_dest); ///< store a byte
virtual void store_buffer(const uint8_t *p_src, int p_length); ///< store an array of bytes
virtual bool file_exists(const String &p_name); ///< return true if a file exists virtual bool file_exists(const String &p_name); ///< return true if a file exists