From f76a34c273e94193893c1dfc68cd47f25dd65d19 Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Tue, 20 Feb 2018 16:44:36 -0800 Subject: [PATCH] Fixed deepcopy segfault issue with Camera --- camera/camera.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/camera/camera.py b/camera/camera.py index 2943162c..154c58f3 100644 --- a/camera/camera.py +++ b/camera/camera.py @@ -5,6 +5,7 @@ import os from PIL import Image from colour import Color import aggdraw +import copy from helpers import * from mobject import Mobject, PMobject, VMobject, \ @@ -45,6 +46,13 @@ class Camera(object): self.resize_space_shape() self.reset() + def __deepcopy__(self, memo): + # This is to address a strange bug where deepcopying + # will result in a segfault, which is somehow related + # to the aggdraw library + self.canvas = None + return copy.copy(self) + def resize_space_shape(self, fixed_dimension = 0): """ Changes space_shape to match the aspect ratio @@ -205,7 +213,7 @@ class Camera(object): ## Methods associated with svg rendering def get_aggdraw_canvas(self): - if not hasattr(self, "canvas"): + if not hasattr(self, "canvas") or not self.canvas: self.reset_aggdraw_canvas() return self.canvas