同一个 char Bug 的续集:安卓端物品渲染异常的漫长追踪
同一个 char Bug 的续集:安卓端物品渲染异常的漫长追踪引言上一篇文章记录了 typedef char i8 导致的安卓端无限续命 Bug。当时的修复方式是在分数续命检查处添加 (int8_t) 显式转换,算是一个精准的手术刀式补丁。 我以为这个坑踩完了。然而同一个 char 符号性问题,又在完全不同的地方咬了我一口——而且这次的症状更加隐蔽,追查过程也走了更多弯路。 症状安卓端第一关...
同一个 char Bug 的续集:安卓端物品渲染异常的漫长追踪引言上一篇文章记录了 typedef char i8 导致的安卓端无限续命 Bug。当时的修复方式是在分数续命检查处添加 (int8_t) 显式转换,算是一个精准的手术刀式补丁。 我以为这个坑踩完了。然而同一个 char 符号性问题,又在完全不同的地方咬了我一口——而且这次的症状更加隐蔽,追查过程也走了更多弯路。 症状安卓端第一关...
一个 char 的符号性差异导致的安卓端无限续命 Bug引言在将 Touhou 06(东方红魔乡)的 SDL2 移植版适配到 Android 平台的过程中,遇到了一个非常诡异的 Bug:安卓上永远无法触发 Game Over,最后一条命死亡后游戏会自动续命并继续,就好像续关界面被直接跳过了一样。 这个 Bug 的根因出乎意料——char 类型在 ARM 和 x86 架构上的默认符号性不同。 ...