Skip to content

Commit 46db350

Browse files
committed
address review comments
1 parent 1b17ed7 commit 46db350

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

llama.cpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1197,13 +1197,13 @@ struct no_init {
11971197
};
11981198

11991199
struct llama_file {
1200-
char * name;
1200+
std::string name;
12011201
// use FILE * so we don't have to re-open the file to mmap
12021202
FILE * fp;
12031203
size_t size;
12041204

12051205
llama_file(const char * fname, const char * mode) {
1206-
name = strdup(fname);
1206+
name = fname;
12071207
fp = ggml_fopen(fname, mode);
12081208
if (fp == NULL) {
12091209
throw std::runtime_error(format("failed to open %s: %s", fname, strerror(errno)));
@@ -1267,24 +1267,24 @@ struct llama_file {
12671267
write_raw(&val, sizeof(val));
12681268
}
12691269

1270-
size_t read_direct(void * ptr, size_t len, size_t offset) const {
12711270
#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)
1271+
size_t read_direct(void * ptr, size_t len, size_t offset) const {
12721272
int page_size = sysconf(_SC_PAGESIZE);
12731273
GGML_ASSERT((uintptr_t) ptr % page_size == 0);
12741274
GGML_ASSERT(len % page_size == 0);
12751275
GGML_ASSERT(offset % page_size == 0);
12761276
#ifdef __APPLE__
1277-
int fd = open(name, O_RDONLY);
1277+
int fd = open(name.c_str(), O_RDONLY);
12781278
if (fd == -1) {
1279-
throw std::runtime_error(format("failed to open %s: %s", name, strerror(errno)));
1279+
throw std::runtime_error(format("failed to open %s: %s", name.c_str(), strerror(errno)));
12801280
}
12811281
if (fcntl(fd, F_NOCACHE, 1) == -1) {
12821282
throw std::runtime_error(format("failed to enable direct I/O: %s", strerror(errno)));
12831283
}
12841284
#else
1285-
int fd = open(name, O_RDONLY | O_DIRECT);
1285+
int fd = open(name.c_str(), O_RDONLY | O_DIRECT);
12861286
if (fd == -1) {
1287-
throw std::runtime_error(format("failed to open %s for direct I/O: %s", name, strerror(errno)));
1287+
throw std::runtime_error(format("failed to open %s for direct I/O: %s", name.c_str(), strerror(errno)));
12881288
}
12891289
#endif
12901290
size_t bytes_read = 0;
@@ -1309,6 +1309,7 @@ struct llama_file {
13091309

13101310
static constexpr bool DIRECT_IO_SUPPORTED = true;
13111311
#elif defined(_WIN32)
1312+
size_t read_direct(void * ptr, size_t len, size_t offset) const {
13121313
SYSTEM_INFO siSysInfo;
13131314
GetSystemInfo(&siSysInfo);
13141315
DWORD dwPageSize = siSysInfo.dwPageSize;
@@ -1318,12 +1319,12 @@ struct llama_file {
13181319

13191320
HANDLE hFile = ReOpenFile((HANDLE) _get_osfhandle(_fileno(fp)), GENERIC_READ, FILE_SHARE_READ, FILE_FLAG_NO_BUFFERING);
13201321
if (hFile == INVALID_HANDLE_VALUE) {
1321-
throw std::runtime_error(format("failed to open %s: %s", name, llama_format_win_err(GetLastError()).c_str()));
1322+
throw std::runtime_error(format("failed to open %s: %s", name.c_str(), llama_format_win_err(GetLastError()).c_str()));
13221323
}
13231324

13241325
size_t bytes_read = 0;
13251326
while (len > 0) {
1326-
OVERLAPPED oOverlap = {0};
1327+
OVERLAPPED oOverlap = {};
13271328
oOverlap.OffsetHigh = offset >> 32;
13281329
oOverlap.Offset = offset;
13291330
DWORD nBytesToRead = std::min(len, (size_t) 0xFFFFFFFF & ~(dwPageSize - 1));
@@ -1351,6 +1352,7 @@ struct llama_file {
13511352

13521353
static constexpr bool DIRECT_IO_SUPPORTED = true;
13531354
#else
1355+
size_t read_direct(void * ptr, size_t len, size_t offset) const {
13541356
GGML_UNUSED(ptr);
13551357
GGML_UNUSED(len);
13561358
GGML_UNUSED(offset);
@@ -1365,7 +1367,6 @@ struct llama_file {
13651367
if (fp) {
13661368
std::fclose(fp);
13671369
}
1368-
free(name);
13691370
}
13701371
};
13711372
using llama_files = std::vector<std::unique_ptr<llama_file>>;
@@ -1607,7 +1608,7 @@ struct llama_anonymous_mmap : llama_mmap {
16071608
mapped_fragments.emplace_back(0, size);
16081609
}
16091610

1610-
void populate(size_t first, size_t last) const {
1611+
void populate(size_t first, size_t last) const override {
16111612
int page_size = sysconf(_SC_PAGESIZE);
16121613

16131614
align_to_previous_page(&first, page_size);
@@ -1638,7 +1639,7 @@ struct llama_anonymous_mmap : llama_mmap {
16381639
}
16391640
}
16401641

1641-
void populate(size_t first, size_t last) const {
1642+
void populate(size_t first, size_t last) const override {
16421643
SYSTEM_INFO siSysInfo;
16431644
GetSystemInfo(&siSysInfo);
16441645
DWORD dwPageSize = siSysInfo.dwPageSize;
@@ -1658,7 +1659,7 @@ struct llama_anonymous_mmap : llama_mmap {
16581659
throw std::runtime_error("mmap not supported");
16591660
}
16601661

1661-
void populate(size_t first, size_t last) const {
1662+
void populate(size_t first, size_t last) const override {
16621663
GGML_UNUSED(first);
16631664
GGML_UNUSED(last);
16641665

0 commit comments

Comments
 (0)