]> Cypherpunks.ru repositories - pyderasn.git/blobdiff - pyderasn.py
It is better to invoke pyderasn through -m
[pyderasn.git] / pyderasn.py
index 4ae1eb0814182f065fa045d1c89b7a9f6c11e9ba..5c311e09c11d2c39eed450a0d2f768bd195f1bea 100755 (executable)
@@ -318,6 +318,7 @@ from collections import OrderedDict
 from datetime import datetime
 from math import ceil
 
+from six import add_metaclass
 from six import binary_type
 from six import byte2int
 from six import indexbytes
@@ -655,6 +656,13 @@ def len_decode(data):
 # Base class
 ########################################################################
 
+class AutoAddSlots(type):
+    def __new__(cls, name, bases, _dict):
+        _dict["__slots__"] = _dict.get("__slots__", ())
+        return type.__new__(cls, name, bases, _dict)
+
+
+@add_metaclass(AutoAddSlots)
 class Obj(object):
     """Common ASN.1 object class
 
@@ -709,7 +717,7 @@ class Obj(object):
     def decoded(self):
         """Is object decoded?
         """
-        return self.llen > 0
+        return (self.llen + self.vlen) > 0
 
     def copy(self):  # pragma: no cover
         """Make a copy of object, safe to be mutated