AskaEth
72c6e9889d
fix(sdk): 从公开仓回补 M19 滚动池修复(free 归还 wrap 槽)+ 宿主回归
meow_scroll_wrap 从 MEOW_SCROLL_POOL(=8) 个 wrap 上下文槽占一个,meow_scroll_free
只归还会话槽、从不归还 wrap 槽也不清 ctx.w → 进程内最多成功 wrap 8 次,之后恒 NULL。
主仓此前仍是有缺陷版本;本提交把公开 SDK 仓 c85877b 的修复按内容移植到主仓(唯一权威
源),meow_ui_scroll.c 结果与公开仓 sdk/meow_ui_scroll.c 逐字节一致,diff 仅 wrap 相关
hunk(之前两文件差异也只有这些 hunk,故无其它改动被覆盖)。
- meow_scroll 结构记 wrap_slot(create 置 -1),wrap 时写槽下标;free 按该下标清
g_wrap_ctx[].w/lv 并归还 g_wrap_used,随后置 -1(二次 free 不触碰任何槽)。
直接 create 的实例 wrap_slot=-1,free 不误清别人的槽。池满语义不变:8 个同时活跃时
第 9 个 wrap 仍返回 NULL;free(NULL) 安全。
- test_meow_ui_scroll 断言 17 → 44:64 次 wrap/free(修复前 8/64、修复后 64/64)、
free 后再 wrap、8 满 + 第 9 个 NULL + 释放其一即复用、交错 free 不串槽、直接 create
不误清槽、list→listview→list 槽复用不残留 kind、free(NULL)/二次 free。
头注释补 meow_ui_nav.c:原配方缺该 TU,链接期 meow_ui_nav_request_exit 未定义。
验证:LAUNCHER_DIR=主检出/patch_v2/meow_launcherd build_sdk_host.sh --verify
exit=0、0 warning/error、成员清单 76 项一致且全 MIPS32r2;宿主测试 44 pass / 0 fail;
同测试对修复前 meow_ui_scroll.c 为 13 pass / 19 fail(首条即 ok=8 first_fail=8)。
meow_ui.a 中 meow_ui_scroll.o 已变化,链 meow_ui.a 的 App 需重链。
2026-11-05 20:59:36 +08:00
..
2026-11-05 20:38:02 +08:00
2026-11-05 13:41:52 +08:00
2026-11-04 20:25:54 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 20:46:26 +08:00
2026-09-01 23:49:24 +08:00
2026-08-31 18:34:51 +08:00
2026-11-05 13:41:52 +08:00
2026-09-04 01:49:24 +08:00
2026-09-04 01:49:24 +08:00
2026-09-04 13:56:11 +08:00
2026-09-03 20:44:33 +08:00
2026-09-03 17:56:27 +08:00
2026-09-03 14:40:44 +08:00
2026-09-03 14:40:44 +08:00
2026-09-02 16:19:40 +08:00
2026-09-02 16:19:40 +08:00
2026-08-31 07:53:57 +08:00
2026-08-31 07:53:57 +08:00
2026-08-31 18:34:51 +08:00
2026-08-31 18:34:51 +08:00
2026-08-31 18:34:51 +08:00
2026-09-04 18:13:18 +08:00
2026-08-31 07:53:57 +08:00
2026-09-01 23:49:24 +08:00
2026-09-04 00:56:57 +08:00
2026-09-01 23:49:24 +08:00
2026-08-30 23:01:31 +08:00
2026-09-04 18:13:18 +08:00
2026-09-02 00:57:58 +08:00
2026-09-02 09:51:23 +08:00
2026-11-05 13:41:52 +08:00
2026-08-30 15:27:10 +08:00
2026-11-04 20:02:28 +08:00
2026-11-05 20:03:20 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 20:46:26 +08:00
2026-08-31 19:12:51 +08:00
2026-09-01 14:44:55 +08:00
2026-09-01 14:44:55 +08:00
2026-08-31 07:53:57 +08:00
2026-08-31 07:53:57 +08:00
2026-08-30 13:02:17 +08:00
2026-11-05 20:59:36 +08:00
2026-09-02 02:37:38 +08:00
2026-11-05 13:41:52 +08:00
2026-09-01 03:25:01 +08:00
2026-09-02 16:50:40 +08:00
2026-11-05 20:46:26 +08:00
2026-09-02 16:50:40 +08:00
2026-09-02 16:50:40 +08:00
2026-09-01 16:08:01 +08:00
2026-08-31 15:42:24 +08:00
2026-11-05 20:38:02 +08:00
2026-09-03 12:16:01 +08:00
2026-08-30 19:32:40 +08:00
2026-09-02 03:24:46 +08:00
2026-08-30 01:12:34 +08:00
2026-11-05 20:03:20 +08:00
2026-08-30 22:33:51 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 20:03:20 +08:00
2026-11-05 20:03:20 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 14:40:44 +08:00
2026-09-03 17:56:27 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 14:40:44 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 20:46:26 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-08-30 23:01:31 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 20:38:02 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 20:59:36 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-09-02 02:37:38 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-08-31 20:17:51 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-08-30 03:27:24 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-09-02 16:19:40 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-08-31 18:59:54 +08:00
2026-08-30 13:02:17 +08:00
2026-08-31 18:59:54 +08:00
2026-08-30 13:02:17 +08:00
2026-09-03 12:16:01 +08:00
2026-08-30 13:02:17 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-11-05 13:41:52 +08:00
2026-08-30 19:32:40 +08:00
2026-11-05 13:41:52 +08:00
2026-09-03 12:16:01 +08:00
2026-09-01 14:44:55 +08:00
2026-09-03 12:16:01 +08:00
2026-08-31 22:40:08 +08:00
2026-09-02 16:50:40 +08:00