Files
Aurora.3/code/controllers/subsystems
sentry[bot] 32fbb7d965 Fix statpanel obj_window null dereference (#22538)
* Please describe the intent of your changes in a clear fashion.
This PR addresses SERVER-PROD-75, where the `set_turf_examine_tab` and
`return_object_images` procs in the statpanels subsystem would crash due
to attempting to access `client.obj_window.atoms_to_show` when
`client.obj_window` was null.

The root cause was a lifecycle desync: `client.obj_window` is primarily
initialized within `/mob/set_listed_turf` and can be explicitly nulled
by `/datum/object_window_info/Destroy()`. However, the statpanels
subsystem would still attempt to update the turf examine tab if
`mob.listed_turf` was set, even if `client.obj_window` had become null
(e.g., after a mob transfer, relogin, or `obj_window` destruction
without a subsequent `set_listed_turf` call).

The fix involves lazy-initializing `client.obj_window` within both
`set_turf_examine_tab` and `return_object_images`. This ensures that
`client.obj_window` is always a valid `/datum/object_window_info`
instance before its properties are accessed, preventing the null
dereference crash.
* Please make sure that, in the case of mapping changes, you include
images of these changes in the PR's description.
* Please make sure to mark your PR as wip or review required by making a
comment with !wip or !review required
* If you include sprites/sounds/... (assets) that you have not created
yourself specify the license and original author below.
* Ensure that you also credit them in the appropriate location /
changelog as specified in the contributor guidelines

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/example.dmi | ExamplePerson (Example Station) | CC0 |


Fixes SERVER-PROD-75

---------

Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2026-06-01 10:35:21 +00:00
..
2026-01-31 01:41:11 +00:00
2025-12-23 23:13:42 +00:00
2026-04-26 12:34:31 +02:00
2025-08-09 12:22:56 +00:00
2026-05-27 15:42:01 +00:00
2026-02-27 01:28:20 +00:00
2026-02-27 01:28:20 +00:00
2026-04-26 12:34:31 +02:00
2026-04-26 12:34:31 +02:00
2026-05-29 20:37:57 +00:00
2025-12-23 23:13:42 +00:00
2026-02-27 01:28:20 +00:00
2025-08-11 15:12:56 +00:00
2026-02-17 15:57:11 +00:00