summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Etingof <etingof@gmail.com>2017-09-10 13:45:35 +0200
committerIlya Etingof <etingof@gmail.com>2017-09-10 13:46:16 +0200
commit0864306968a0ac91619189669f3359575d91c9a5 (patch)
tree4a111072d3a1883af4767ce05063acf061f2a276
parent12f5f38b51144a07ec790244bb7872c22e0c7ba6 (diff)
downloadpyasn1-git-0864306968a0ac91619189669f3359575d91c9a5.tar.gz
end-of-octets marker encoding optimized
-rw-r--r--CHANGES.rst1
-rw-r--r--pyasn1/codec/ber/encoder.py11
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