|
From: <cpa...@ce...> - 2016-01-27 15:36:46
|
From: cpascual <cpa...@ce...>
TaurusModel stores a weak ref to its parent. If the parent is not
referenced elsewhere, the getParentObj API does not work as expected.
Fix by making TaurusModel store a strong ref to parent instead of a weak
one.
---
lib/taurus/core/taurusmodel.py | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/lib/taurus/core/taurusmodel.py b/lib/taurus/core/taurusmodel.py
index 4f11b9d..e5cbc4f 100644
--- a/lib/taurus/core/taurusmodel.py
+++ b/lib/taurus/core/taurusmodel.py
@@ -58,10 +58,7 @@ class TaurusModel(Logger):
serializationMode = s_obj.getSerializationMode()
self._serialization_mode = serializationMode
- try:
- self._parentObj = weakref.ref(parent)
- except Exception:
- self._parentObj = None
+ self._parentObj = parent
self._listeners = []
def __str__name__(self, name):
@@ -121,8 +118,7 @@ class TaurusModel(Logger):
#-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
def getParentObj(self):
- if self._parentObj is None: return None
- return self._parentObj()
+ return self._parentObj
def getChildObj(self,child_name):
return None
--
2.6.4
|