diff options
author | Brian Beggs <macdiesel@speakeasy.net> | 2010-05-14 10:59:41 -0400 |
---|---|---|
committer | Brian Beggs <macdiesel@speakeasy.net> | 2010-05-14 10:59:41 -0400 |
commit | 4b322720b39731d16fefedd8a77b3f9bb1684d7e (patch) | |
tree | 330e3a05f35675b0779060656156cefe320e27f2 /sleekxmpp/xmlstream | |
parent | 1521a8b5c9d656ef80a4caf3d7daa86f8f504423 (diff) | |
parent | 7522839141e7dd5bd081a421a58b0962b705fdda (diff) | |
download | slixmpp-4b322720b39731d16fefedd8a77b3f9bb1684d7e.tar.gz slixmpp-4b322720b39731d16fefedd8a77b3f9bb1684d7e.tar.bz2 slixmpp-4b322720b39731d16fefedd8a77b3f9bb1684d7e.tar.xz slixmpp-4b322720b39731d16fefedd8a77b3f9bb1684d7e.zip |
Merge remote branch 'tom/master'
Diffstat (limited to 'sleekxmpp/xmlstream')
-rw-r--r-- | sleekxmpp/xmlstream/stanzabase.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sleekxmpp/xmlstream/stanzabase.py b/sleekxmpp/xmlstream/stanzabase.py index 57c727a3..018e81c3 100644 --- a/sleekxmpp/xmlstream/stanzabase.py +++ b/sleekxmpp/xmlstream/stanzabase.py @@ -9,6 +9,7 @@ from xml.etree import cElementTree as ET import logging import traceback import sys +import weakref if sys.version_info < (3,0): from . import tostring26 as tostring @@ -51,7 +52,10 @@ class ElementBase(tostring.ToString): subitem = None def __init__(self, xml=None, parent=None): - self.parent = parent + if parent is None: + self.parent = None + else: + self.parent = weakref.ref(parent) self.xml = xml self.plugins = {} self.iterables = [] @@ -158,7 +162,7 @@ class ElementBase(tostring.ToString): else: self.xml.append(new) if self.parent is not None: - self.parent.xml.append(self.xml) + self.parent().xml.append(self.xml) return True #had to generate XML else: return False @@ -302,9 +306,9 @@ class ElementBase(tostring.ToString): self.xml.append(xml) return self - def __del__(self): - if self.parent is not None: - self.parent.xml.remove(self.xml) + #def __del__(self): #prevents garbage collection of reference cycle + # if self.parent is not None: + # self.parent.xml.remove(self.xml) class StanzaBase(ElementBase): name = 'stanza' |