From 8386824b825351b200df88e7a71f57d1652f08ea Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Sun, 29 Jul 2018 17:34:45 -0400
Subject: [PATCH 3/3] Try to fix bool snap lifetimes.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
src/_mplcairo.cpp | 4 ++--
src/_mplcairo.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/_mplcairo.cpp b/src/_mplcairo.cpp
index 5bb34e7..15897f6 100644
--- a/src/_mplcairo.cpp
+++ b/src/_mplcairo.cpp
@@ -542,12 +542,12 @@ void GraphicsContextRenderer::set_linewidth(double lw)
cairo_set_miter_limit(cr_, cairo_get_line_width(cr_));
}
-void GraphicsContextRenderer::set_snap(std::optional<bool> snap)
+void GraphicsContextRenderer::set_snap(py::object snap)
{
// NOTE: We treat None (snap if only vertical or horizontal lines) as True.
// NOTE: It appears that even when rcParams["path.snap"] is False, this is
// sometimes set to True.
- get_additional_state().snap = snap.value_or(true);
+ get_additional_state().snap = snap.is(py::none{}) ? true : snap.cast<bool>();
}
void GraphicsContextRenderer::set_url(std::optional<std::string> url)
diff --git a/src/_mplcairo.h b/src/_mplcairo.h
index 934fd9a..1693a22 100644
--- a/src/_mplcairo.h
+++ b/src/_mplcairo.h
@@ -75,7 +75,7 @@ class GraphicsContextRenderer {
void set_hatch_color(py::object hatch);
void set_joinstyle(std::string js);
void set_linewidth(double lw);
- void set_snap(std::optional<bool> snap);
+ void set_snap(py::object snap);
void set_url(std::optional<std::string> url);
AdditionalState const& get_additional_state() const;
--
2.17.1