From e96ebef1d3b0e109109f1c108e5d9f4c773bd281 Mon Sep 17 00:00:00 2001 From: Francis Tsui Date: Mon, 2 Jun 2025 18:29:28 -0700 Subject: [PATCH] Make levelDb compatible with Unicode paths. PiperOrigin-RevId: 766424342 --- internal/data/BUILD | 8 +++++++- internal/data/leveldb_data_set.h | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/internal/data/BUILD b/internal/data/BUILD index 19e7a887..b03e493e 100644 --- a/internal/data/BUILD +++ b/internal/data/BUILD @@ -37,7 +37,13 @@ cc_library( "@com_google_absl//absl/strings", "@com_google_absl//absl/synchronization", "@com_google_protobuf//:protobuf_lite", - ], + ] + select({ + "@platforms//os:windows": [ + "//location/nearby/apps/better_together/windows/common:leveldb_env_windows", + ], + "//conditions:default": [ + ], + }), ) proto_library( diff --git a/internal/data/leveldb_data_set.h b/internal/data/leveldb_data_set.h index c9f625aa..b16a7f7e 100644 --- a/internal/data/leveldb_data_set.h +++ b/internal/data/leveldb_data_set.h @@ -29,6 +29,9 @@ #include "third_party/leveldb/include/slice.h" #include "third_party/leveldb/include/status.h" #include "internal/data/data_set.h" +#if defined(_WIN32) +#include "location/nearby/apps/better_together/windows/common/leveldb_env_windows.h" +#endif // defined(_WIN32) #include "internal/platform/logging.h" #include "google/protobuf/message_lite.h" @@ -80,7 +83,9 @@ void LeveldbDataSet::Initialize( absl::AnyInvocable callback) { leveldb::Options options; options.create_if_missing = true; - +#if defined(_WIN32) + options.env = nearby::windows::WindowsEnv::Default(); +#endif // defined(_WIN32) leveldb::DB* db; leveldb::Status status = leveldb::DB::Open(options, path_, &db); db_ = std::unique_ptr(db);