From 02f04188897ddb713321b6f7fcaee1fd516199f8 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 16 May 2017 13:42:28 +0200 Subject: [PATCH] Prevent infinite recursion relating to limit_to_extruder With limit_to_extruder, we always try to get the value of a setting from an extruder. However, if the setting is not settable_per_extruder we bypass the extruder and go directly to the global stack. This would cause an infinite recursion. Contributes to CURA-3738 --- cura/Settings/GlobalStack.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 2f5cb48743..7d13f22180 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -82,9 +82,12 @@ class GlobalStack(CuraContainerStack): # Handle the "limit_to_extruder" property. limit_to_extruder = super().getProperty(key, "limit_to_extruder") if limit_to_extruder is not None and limit_to_extruder != "-1": - result = self._extruders[int(limit_to_extruder)].getProperty(key, property_name) - if result is not None: - return result + if super().getProperty(key, "settable_per_extruder"): + result = self._extruders[int(limit_to_extruder)].getProperty(key, property_name) + if result is not None: + return result + else: + Logger.log("e", "Setting {setting} has limit_to_extruder but is not settable per extruder!", setting = key) return super().getProperty(key, property_name)