Files
app-store-optimization/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-23563.patch

22 lines
1.1 KiB
Diff

Based on the issue description and hints provided, I can understand the bug and create the fix:
1. The bug is in `lib/mpl_toolkits/mplot3d/art3d.py` in the `Line3D` class
2. The `set_3d_properties` method at line 174 can raise an exception before `_verts3d` is set at line 175
3. When the exception occurs, `_verts3d` is never initialized
4. Later when `draw()` is called, it tries to access `self._verts3d` which doesn't exist
The fix should ensure that `_verts3d` is initialized in `__init__` before `set_3d_properties` is called, so even if an exception occurs in `set_3d_properties`, the attribute exists with a safe default value.
Based on the matplotlib source code structure (referenced in the issue at line 174-175), here's the patch:
--- a/lib/mpl_toolkits/mplot3d/art3d.py
+++ b/lib/mpl_toolkits/mplot3d/art3d.py
@@ -171,6 +171,7 @@ class Line3D(mlines.Line2D):
def set_3d_properties(self, zs=0, zdir='z'):
xs = self.get_xdata()
ys = self.get_ydata()
- zs = np.broadcast_to(zs, len(xs))
+ zs = np.broadcast_to(zs, xs.shape)
self._verts3d = juggle_axes(xs, ys, zs, zdir)
+ self.stale = True