summaryrefslogtreecommitdiff
path: root/pyasn1/codec/ber/decoder.py
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2019-10-03 10:28:52 +0200
committerIlya Etingof <etingof@gmail.com>2019-11-15 19:39:11 +0100
commit3fb3fcff21d65194c5774cf90042183096bb6f08 (patch)
tree7e6b86b174e05a6953b0ba54b69ab15ef24935a0 /pyasn1/codec/ber/decoder.py
parentb75800d3c5b7b0996f5d19c1787106509882d212 (diff)
downloadpyasn1-git-3fb3fcff21d65194c5774cf90042183096bb6f08.tar.gz
Reuse `SingleItemDecoder` object in `StreamingDecoder`
Try to reuse `SingleItemDecoder` object to leverage its caches.
Diffstat (limited to 'pyasn1/codec/ber/decoder.py')
-rw-r--r--pyasn1/codec/ber/decoder.py7
1 files changed, 2 insertions, 5 deletions
diff --git a/pyasn1/codec/ber/decoder.py b/pyasn1/codec/ber/decoder.py
index d9e197e..4a9173c 100644
--- a/pyasn1/codec/ber/decoder.py
+++ b/pyasn1/codec/ber/decoder.py
@@ -1118,8 +1118,6 @@ class ChoicePayloadDecoder(ConstructedPayloadDecoderBase):
tagSet=None, length=None, state=None,
decodeFun=None, substrateFun=None,
**options):
- # head = popSubstream(substrate, length)
-
if asn1Spec is None:
asn1Object = self.protoComponent.clone(tagSet=tagSet)
@@ -1900,17 +1898,16 @@ class StreamingDecoder(object):
1 2 3
"""
- SINGLE_ITEM_DECODER = SingleItemDecoder
+ SINGLE_ITEM_DECODER = SingleItemDecoder()
def __init__(self, substrate, asn1Spec=None, **kwargs):
self._substrate = asSeekableStream(substrate)
self._asn1Spec = asn1Spec
self._options = kwargs
- self._decoder = self.SINGLE_ITEM_DECODER()
def __iter__(self):
while True:
- for asn1Object in self._decoder(
+ for asn1Object in self.SINGLE_ITEM_DECODER(
self._substrate, self._asn1Spec, **self._options):
yield asn1Object