diff options
Diffstat (limited to 'klm')
| -rw-r--r-- | klm/lm/left.hh | 2 | ||||
| -rw-r--r-- | klm/util/file.cc | 10 | ||||
| -rw-r--r-- | klm/util/file.hh | 3 | ||||
| -rw-r--r-- | klm/util/mmap.cc | 14 | 
4 files changed, 14 insertions, 15 deletions
| diff --git a/klm/lm/left.hh b/klm/lm/left.hh index 41f71f84..a07f9803 100644 --- a/klm/lm/left.hh +++ b/klm/lm/left.hh @@ -112,7 +112,7 @@ inline size_t hash_value(const ChartState &state) {    size_t hashes[2];    hashes[0] = hash_value(state.left);    hashes[1] = hash_value(state.right); -  return util::MurmurHashNative(hashes, sizeof(size_t), state.full); +  return util::MurmurHashNative(hashes, sizeof(size_t) * 2, state.full);  }  template <class M> class RuleScore { diff --git a/klm/util/file.cc b/klm/util/file.cc index aee7c77a..176737fa 100644 --- a/klm/util/file.cc +++ b/klm/util/file.cc @@ -42,6 +42,16 @@ int OpenReadOrThrow(const char *name) {    return ret;  } +int CreateOrThrow(const char *name) { +  int ret; +#if defined(_WIN32) || defined(_WIN64) +  UTIL_THROW_IF(-1 == (ret = _open(name, _O_CREAT | _O_TRUNC | _O_RDWR, _S_IREAD | _S_IWRITE)), ErrnoException, "while creating " << name); +#else +  UTIL_THROW_IF(-1 == (ret = open(name, O_CREAT | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)), ErrnoException, "while creating " << name); +#endif +  return ret; +} +  uint64_t SizeFile(int fd) {  #if defined(_WIN32) || defined(_WIN64)    __int64 ret = _filelengthi64(fd); diff --git a/klm/util/file.hh b/klm/util/file.hh index 5c57e2a9..72c8ea76 100644 --- a/klm/util/file.hh +++ b/klm/util/file.hh @@ -65,7 +65,10 @@ class scoped_FILE {      std::FILE *file_;  }; +// Open for read only.    int OpenReadOrThrow(const char *name); +// Create file if it doesn't exist, truncate if it does.  Opened for write.    +int CreateOrThrow(const char *name);  // Return value for SizeFile when it can't size properly.    const uint64_t kBadSize = (uint64_t)-1; diff --git a/klm/util/mmap.cc b/klm/util/mmap.cc index a329ce4e..3b1c58b8 100644 --- a/klm/util/mmap.cc +++ b/klm/util/mmap.cc @@ -170,20 +170,6 @@ void *MapZeroedWrite(int fd, std::size_t size) {    return MapOrThrow(size, true, kFileFlags, false, fd, 0);  } -namespace { - -int CreateOrThrow(const char *name) { -  int ret; -#if defined(_WIN32) || defined(_WIN64) -  UTIL_THROW_IF(-1 == (ret = _open(name, _O_CREAT | _O_TRUNC | _O_RDWR, _S_IREAD | _S_IWRITE)), ErrnoException, "while creating " << name); -#else -  UTIL_THROW_IF(-1 == (ret = open(name, O_CREAT | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)), ErrnoException, "while creating " << name); -#endif -  return ret; -} - -} // namespace -  void *MapZeroedWrite(const char *name, std::size_t size, scoped_fd &file) {    file.reset(CreateOrThrow(name));    try { | 
