diff options
author | Ilya Etingof <etingof@gmail.com> | 2019-10-03 10:28:52 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2019-11-15 19:39:11 +0100 |
commit | 3fb3fcff21d65194c5774cf90042183096bb6f08 (patch) | |
tree | 7e6b86b174e05a6953b0ba54b69ab15ef24935a0 /pyasn1/codec/ber/decoder.py | |
parent | b75800d3c5b7b0996f5d19c1787106509882d212 (diff) | |
download | pyasn1-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.py | 7 |
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 |