mc2: 0x00617E40
| 53 | |
| 54 | // mc2: 0x00617E40 |
| 55 | std::int32_t FileHandler::write(const void *data, std::int32_t size) { |
| 56 | if (buffer_read > 0 && this->flush() < 0) return -1; |
| 57 | if (size < buffer_size) { |
| 58 | const std::int32_t buffer_available = buffer_size - buffer_offset; |
| 59 | if (size >= buffer_available) { |
| 60 | std::memcpy(buffer + buffer_offset, data, buffer_available); |
| 61 | data = reinterpret_cast<const std::uint8_t *>(data) + buffer_available; |
| 62 | size -= buffer_available; |
| 63 | buffer_offset = buffer_size; |
| 64 | if (this->flush() < 0) return -1; |
| 65 | } |
| 66 | |
| 67 | std::memcpy(buffer + buffer_offset, data, size); |
| 68 | buffer_offset += size; |
| 69 | return size; |
| 70 | } else { |
| 71 | if (this->flush() < 0) return -1; |
| 72 | std::int32_t written = file_funcs->write(handle, data, size); |
| 73 | if (written < 0) return -1; |
| 74 | buffer_offset += written; |
| 75 | return written; |
| 76 | } |
| 77 | } |
| 78 | |
| 79 | // mc2: 0x00617D20 |
| 80 | std::int32_t FileHandler::read(void *data, std::int32_t size) { |
no test coverage detected