diff options
author | Ilya Etingof <etingof@gmail.com> | 2017-09-10 13:45:35 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2017-09-10 13:46:16 +0200 |
commit | 0864306968a0ac91619189669f3359575d91c9a5 (patch) | |
tree | 4a111072d3a1883af4767ce05063acf061f2a276 | |
parent | 12f5f38b51144a07ec790244bb7872c22e0c7ba6 (diff) | |
download | pyasn1-git-0864306968a0ac91619189669f3359575d91c9a5.tar.gz |
end-of-octets marker encoding optimized
-rw-r--r-- | CHANGES.rst | 1 | ||||
-rw-r--r-- | pyasn1/codec/ber/encoder.py | 11 |
2 files changed, 3 insertions, 9 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index 984f678..b1bfea4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,7 @@ Revision 0.3.5, released XX-09-2017 - Codecs signatures unified and pass **options through the call chain - Explicit tag encoding optimized to avoid unnecessary copying +- End-of-octets sentinel encoding optimized Revision 0.3.4, released 07-09-2017 ----------------------------------- diff --git a/pyasn1/codec/ber/encoder.py b/pyasn1/codec/ber/encoder.py index ef58137..dee13e5 100644 --- a/pyasn1/codec/ber/encoder.py +++ b/pyasn1/codec/ber/encoder.py @@ -50,12 +50,6 @@ class AbstractItemEncoder(object): def encodeValue(self, value, encodeFun, **options): raise error.PyAsn1Error('Not implemented') - def _encodeEndOfOctets(self, encodeFun, defMode): - if defMode or not self.supportIndefLenMode: - return null - else: - return encodeFun(eoo.endOfOctets, defMode=defMode) - def encode(self, value, encodeFun, **options): tagSet = value.tagSet @@ -94,9 +88,8 @@ class AbstractItemEncoder(object): else: substrate = ints2octs(header + substrate) - eoo = self._encodeEndOfOctets(encodeFun, defModeOverride) - if eoo: - substrate += eoo + if not defModeOverride: + substrate += encodeFun(eoo.endOfOctets, defMode=defModeOverride) return substrate |