# Fix GPUI crash when using cached view with Input \(\#50665\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/a221a86d490e6ade04ca3480c4aeb76dda190a6f)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: a221a86d490e6ade04ca3480c4aeb76dda190a6f

Requested commit: a221a86d490e6ade04ca3480c4aeb76dda190a6f

Commit: a221a86d490e6ade04ca3480c4aeb76dda190a6f

Tree: 046af9130e467f0e6923e088874e8727b7adac15

Author: Nguyen Anh Tu \(Elior\)

Committer: GitHub

## Message

```
Fix GPUI crash when using cached view with Input (#50665)

The `draw()` method was calling `.pop()` on `next_frame.input_handlers`
to extract the active input handler for the platform window. This
reduced the Vec length, making cached `paint_range` indices stale. On
the next frame, when a cached view called `reuse_paint()`, it would
index into `rendered_frame.input_handlers` with out-of-bounds indices,
causing a panic: `range start index 1 out of range for slice of length
0`.

**Fix:** Use `.last_mut().and_then(|h| h.take())` instead of `.pop()` to
extract the handler without changing the Vec length. The slot becomes
`None`, which is already handled by `reuse_paint`'s `.take()` logic.

Closes #50456

### Testing

- All 83 existing GPUI unit tests pass
- Manually verified with
[longbridge/gpui-component](https://github.com/longbridge/gpui-component)
`cargo run --example dock`:
  - Switch to Input panel → type text → no crash ✅
  - Before fix: crash immediately on first keystroke

---

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
*(N/A — no UI changes)*

Release Notes:

- Fixed a crash in GPUI when typing into an Input widget inside a cached
view ([#50456](https://github.com/zed-industries/zed/issues/50456))

Co-authored-by: Mikayla Maki <mikayla@zed.dev>
```

## Parents

- [29ca37fdcc991240063622d742bd16e242481864](https://git.cafe/gitcafe/zed/commit/29ca37fdcc991240063622d742bd16e242481864?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/a221a86d490e6ade04ca3480c4aeb76dda190a6f?format=markdown)
