summaryrefslogtreecommitdiff
path: root/debian/patches/0006-CGAL-5.5-compatibility.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0006-CGAL-5.5-compatibility.patch')
-rw-r--r--debian/patches/0006-CGAL-5.5-compatibility.patch78
1 files changed, 78 insertions, 0 deletions
diff --git a/debian/patches/0006-CGAL-5.5-compatibility.patch b/debian/patches/0006-CGAL-5.5-compatibility.patch
new file mode 100644
index 00000000..a5d28944
--- /dev/null
+++ b/debian/patches/0006-CGAL-5.5-compatibility.patch
@@ -0,0 +1,78 @@
+From: Vincent Rouvreau <vincent.rouvreau@inria.fr>
+Date: Tue, 9 Aug 2022 16:06:06 +0200
+Subject: CGAL 5.5 compatibility
+
+Based on upstream commits
+
+ dc7a0aed53d7b74580ed5625293e27cacd452c34
+ 71cbf8f35814d247fe7421c079a6ea78da2282f4
+
+with modifications from discussion in
+
+ https://github.com/CGAL/cgal/issues/6799
+---
+ .../include/gudhi/Skeleton_blocker_contractor.h | 21 ++++++++++++++++-----
+ 1 file changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h b/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h
+index a0d9f2b..d510043 100644
+--- a/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h
++++ b/src/Contraction/include/gudhi/Skeleton_blocker_contractor.h
+@@ -171,8 +171,13 @@ typename GeometricSimplifiableComplex::Vertex_handle> {
+ Self const* algorithm_;
+ };
+
++#if CGAL_VERSION_NR < 1050500000
+ typedef CGAL::Modifiable_priority_queue<Edge_handle, Compare_cost, Undirected_edge_id> PQ;
+- typedef typename PQ::handle pq_handle;
++#else
++ typedef CGAL::Modifiable_priority_queue<Edge_handle, Compare_cost, Undirected_edge_id, CGAL::CGAL_BOOST_PAIRING_HEAP> PQ;
++#endif
++
++ typedef bool pq_handle;
+
+
+ // An Edge_data is associated with EVERY edge in the complex (collapsible or not).
+@@ -196,7 +201,7 @@ typename GeometricSimplifiableComplex::Vertex_handle> {
+ }
+
+ bool is_in_PQ() const {
+- return PQHandle_ != PQ::null_handle();
++ return PQHandle_ != false;
+ }
+
+ void set_PQ_handle(pq_handle h) {
+@@ -204,7 +209,7 @@ typename GeometricSimplifiableComplex::Vertex_handle> {
+ }
+
+ void reset_PQ_handle() {
+- PQHandle_ = PQ::null_handle();
++ PQHandle_ = false;
+ }
+
+ private:
+@@ -238,16 +243,22 @@ typename GeometricSimplifiableComplex::Vertex_handle> {
+ }
+
+ void insert_in_PQ(Edge_handle edge, Edge_data& data) {
+- data.set_PQ_handle(heap_PQ_->push(edge));
++ heap_PQ_->push(edge);
++ data.set_PQ_handle(true);
+ ++current_num_edges_heap_;
+ }
+
+ void update_in_PQ(Edge_handle edge, Edge_data& data) {
++#if CGAL_VERSION_NR < 1050500000
+ data.set_PQ_handle(heap_PQ_->update(edge, data.PQ_handle()));
++#else
++ heap_PQ_->update(edge);
++#endif
+ }
+
+ void remove_from_PQ(Edge_handle edge, Edge_data& data) {
+- data.set_PQ_handle(heap_PQ_->erase(edge, data.PQ_handle()));
++ heap_PQ_->erase(edge);
++ data.set_PQ_handle(false);
+ --current_num_edges_heap_;
+ }
+