summarylogtreecommitdiffstats
path: root/protobuf-ifdefs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'protobuf-ifdefs.patch')
-rw-r--r--protobuf-ifdefs.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/protobuf-ifdefs.patch b/protobuf-ifdefs.patch
new file mode 100644
index 000000000000..dbabcb1f0f4b
--- /dev/null
+++ b/protobuf-ifdefs.patch
@@ -0,0 +1,56 @@
+diff --git a/src/mjolnir/valhalla_query_transit.cc b/src/mjolnir/valhalla_query_transit.cc
+index 3c6d4f80d..27207d439 100644
+--- a/src/mjolnir/valhalla_query_transit.cc
++++ b/src/mjolnir/valhalla_query_transit.cc
+@@ -39,7 +39,11 @@ Transit read_pbf(const std::string& file_name) {
+ google::protobuf::io::CodedInputStream cs(
+ static_cast<google::protobuf::io::ZeroCopyInputStream*>(&as));
+ auto limit = std::max(static_cast<size_t>(1), buffer.size() * 2);
++#if GOOGLE_PROTOBUF_VERSION >= 3006000
++ cs.SetTotalBytesLimit(limit);
++#else
+ cs.SetTotalBytesLimit(limit, limit);
++#endif
+ Transit transit;
+ if (!transit.ParseFromCodedStream(&cs)) {
+ throw std::runtime_error("Couldn't load " + file_name);
+diff --git a/valhalla/mjolnir/transitpbf.h b/valhalla/mjolnir/transitpbf.h
+index 604fca71a..a2c8d535e 100644
+--- a/valhalla/mjolnir/transitpbf.h
++++ b/valhalla/mjolnir/transitpbf.h
+@@ -80,7 +80,11 @@ Transit read_pbf(const std::string& file_name, std::mutex& lock) {
+ google::protobuf::io::CodedInputStream cs(
+ static_cast<google::protobuf::io::ZeroCopyInputStream*>(&as));
+ auto limit = std::max(static_cast<size_t>(1), buffer.size() * 2);
++#if GOOGLE_PROTOBUF_VERSION >= 3006000
++ cs.SetTotalBytesLimit(limit);
++#else
+ cs.SetTotalBytesLimit(limit, limit);
++#endif
+ Transit transit;
+ if (!transit.ParseFromCodedStream(&cs)) {
+ throw std::runtime_error("Couldn't load " + file_name);
+@@ -98,7 +102,11 @@ Transit read_pbf(const std::string& file_name) {
+ google::protobuf::io::CodedInputStream cs(
+ static_cast<google::protobuf::io::ZeroCopyInputStream*>(&as));
+ auto limit = std::max(static_cast<size_t>(1), buffer.size() * 2);
++#if GOOGLE_PROTOBUF_VERSION >= 3006000
++ cs.SetTotalBytesLimit(limit);
++#else
+ cs.SetTotalBytesLimit(limit, limit);
++#endif
+ Transit transit;
+ if (!transit.ParseFromCodedStream(&cs)) {
+ throw std::runtime_error("Couldn't load " + file_name);
+@@ -127,7 +135,11 @@ void write_pbf(const Transit& tile, const filesystem::path& transit_tile) {
+ if (!filesystem::exists(transit_tile.parent_path())) {
+ filesystem::create_directories(transit_tile.parent_path());
+ }
++#if GOOGLE_PROTOBUF_VERSION >= 3001000
++ auto size = tile.ByteSizeLong();
++#else
+ auto size = tile.ByteSize();
++#endif
+ valhalla::midgard::mem_map<char> buffer;
+ buffer.create(transit_tile.string(), size);
+ if (!tile.SerializeToArray(buffer.get(), size)) {