Make Open Mail recovery lazy and bump to 1.4.12
- Leave the existing Open Mail button untouched during normal mailbox opens - Only run full recovery if the button is missing, hidden or re-parented - Match Otari-style normal behavior while keeping compatibility recovery - Keep Open All, inbox polling, sending and logging unchanged - Bump version to 1.4.12
This commit is contained in:
@@ -35,6 +35,10 @@ Target: Turtle WoW 1.18.x / Octo client.
|
||||
|
||||
- **Residual mailbox hitch / excessive garbage generation:** the upstream `GetContainerItemInfo` hook used `pack()` + `unpack()` for every bag query, allocating a temporary table each time. Bag/mailbox refreshes can call this path very frequently and trigger avoidable garbage collection pauses. 1.4.11 replaces the installed hook after login with a fixed-local wrapper that performs no per-call table allocation. The native return count is detected once and the exact arity is preserved for signatures of up to 12 return values; unusual signatures fall back to the previous hook.
|
||||
|
||||
## Fixed in 1.4.12
|
||||
|
||||
- **Open Mail recovery overhead on mailbox open:** 1.4.11 still called the full `ensure_open_mail_button()` routine from `MAIL_SHOW()`. Even when the button was healthy, that path inspected parent, anchor, label, script, size, frame level and visibility. 1.4.12 keeps the normal path Otari-like: if `TurtleMailOpenMailButton` already exists, is parented to `InboxFrame`, and is shown, `MAIL_SHOW()` leaves it completely untouched. The full recovery routine now runs only if the button is missing, hidden, or re-parented. No inbox polling, Open All, sending, logging, or mail-processing logic is changed.
|
||||
|
||||
## Remaining architectural risks upstream
|
||||
|
||||
These are intentionally not rewritten in the compatibility layer because changing them would be much more invasive and could alter mail behavior:
|
||||
@@ -56,4 +60,4 @@ The compatibility build was tested in-game on Turtle WoW 1.18.x and the reported
|
||||
|
||||
## Status
|
||||
|
||||
**1.4.11 is the current test build pending in-game validation.** The fixes remain isolated in `TurtleMailFix.lua` so upstream code stays easy to compare and future upstream changes remain easier to merge.
|
||||
**1.4.12 is the current test build pending in-game validation.** The fixes remain isolated in `TurtleMailFix.lua` so upstream code stays easy to compare and future upstream changes remain easier to merge.
|
||||
|
||||
Reference in New Issue
Block a user