'Try to fix last field when we know current field set size.
Returns new added field if any, or None.'

def _fixLastField(self):

    assert (self._size is not None)
    message = ['stop    parser']
    self._field_generator = None
    while (self._size < self._current_size):
        field = self._deleteField((len(self._fields) - 1))
        message.append(('delete    field    %s' % field.path))
    assert (self._current_size <= self._size)
    blocks = [(x.absolute_address, x.size) for x in self._fields]
    fields = []
    self._size = max(self._size, (max(((a + b) for (a, b) in blocks)) - self.absolute_address))
    for (start, length) in getgaps(self.absolute_address, self._size, blocks):
        self.seekBit(start, relative=False)
        field = createRawField(self, length, 'unparsed[]')
        self.setUniqueFieldName(field)
        self._fields.append(field.name, field)
        fields.append(field)
        message.append(('found    unparsed    segment:    start    %s,    length    %s' % (start, length)))
    self.seekBit((self._size + self.absolute_address), relative=False)
    message = ',    '.join(message)
    if fields:
        self.warning(('[Autofix]    Fix    parser    error:    ' + message))
    return fields
