PySpice icon indicating copy to clipboard operation
PySpice copied to clipboard

_parameters deleted in wrong order

Open geoskd opened this issue 2 years ago • 0 comments

https://github.com/PySpice-org/PySpice/blob/1fb97dc21abcf04cfd78802671322eef5c0de00b/PySpice/Spice/Parser.py#L501 This list is not deliberately ordered and if the indexes are not stored in to_delete[] in reverse order, the del operation on line 502 will have unexpected results.

The simplest fix is to insert "to_delete.sort(reverse=True)" between the two for loops as follows:

        for parameter in element_class.positional_parameters.values():
            if parameter.key_parameter:
                i = parameter.position
                self._dict_parameters[parameter.attribute_name] = self._parameters[i]
                to_delete.append(i)
        to_delete.sort(reverse=True)
        for i in to_delete:
            del self._parameters[i]

geoskd avatar Sep 28 '23 18:09 geoskd