Blob Blame History Raw
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