summaryrefslogtreecommitdiff
path: root/pyasn1/type/base.py
diff options
context:
space:
mode:
authorelie <elie>2011-01-22 10:51:23 +0000
committerelie <elie>2011-01-22 10:51:23 +0000
commit0a141f9d6fbf8f715b6bdfd68e23bd775925a893 (patch)
tree279275fff8de5042fbfaba6923226c79bbbff801 /pyasn1/type/base.py
parent5913ac7559da9f7cd1e5234340e9a1ea4a4a85af (diff)
downloadpyasn1-0a141f9d6fbf8f715b6bdfd68e23bd775925a893.tar.gz
track the number of initialized components of constructed types to save
on default/optional components initialization
Diffstat (limited to 'pyasn1/type/base.py')
-rw-r--r--pyasn1/type/base.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/pyasn1/type/base.py b/pyasn1/type/base.py
index 0fc2b07..181898c 100644
--- a/pyasn1/type/base.py
+++ b/pyasn1/type/base.py
@@ -142,12 +142,13 @@ class AbstractConstructedAsn1Item(Asn1ItemBase):
if self._componentType is None:
self._componentTypeLen = 0
else:
- self._componentTypeLen = len(self._componentType)
+ self._componentTypeLen = len(self._componentType)
if sizeSpec is None:
self._sizeSpec = self.sizeSpec
else:
self._sizeSpec = sizeSpec
self._componentValues = []
+ self._componentValuesSet = 0
def __repr__(self):
r = self.__class__.__name__ + '()'
@@ -215,6 +216,8 @@ class AbstractConstructedAsn1Item(Asn1ItemBase):
def __len__(self): return len(self._componentValues)
- def clear(self): self._componentValues = []
+ def clear(self):
+ self._componentValues = []
+ self._componentValuesSet = 0
def setDefaultComponents(self): pass