diff options
author | elie <elie> | 2011-01-22 10:51:23 +0000 |
---|---|---|
committer | elie <elie> | 2011-01-22 10:51:23 +0000 |
commit | 0a141f9d6fbf8f715b6bdfd68e23bd775925a893 (patch) | |
tree | 279275fff8de5042fbfaba6923226c79bbbff801 /pyasn1/type/base.py | |
parent | 5913ac7559da9f7cd1e5234340e9a1ea4a4a85af (diff) | |
download | pyasn1-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.py | 7 |
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 |