docs: def unpack(self, unpacker):
          """
          Unpacks the constant pool from an unpacker stream
          """
  
          (count, ) = unpacker.unpack_struct(_H)
  
          # first item is never present in the actual data buffer, but
          # the count number acts like it would be.
          items = [(None, None), ]
          count -= 1
  
          # Long and Double const types will "consume" an item count,
          # but not data
          hackpass = False
  
          for _i in range(0, count):
  
              if hackpass:
                  # previous item was a long or double
                  hackpass = False
                  items.append((None, None))
  
              else:
                  item = _unpack_const_item(unpacker)
                  items.append(item)
  
                  # if this item was a long or double, skip the next
                  # counter.
                  if item[0] in (CONST_Long, CONST_Double):
                      hackpass = True
  
          self.consts = items