fix(narrow): 字节缓冲写 int/算术结果改用 char(...)(sys/_fakeduck)

sys.vp cmd 解析 ch:int 写 buf;_fakeduck ch±32 算术提升为 int。目标均为 bytes(i8),RHS 为 32 位,触发 32->8 隐式窄化。其余 for ch in <str> 形态 ch 是 char,同宽不报错
This commit is contained in:
TermiNexus committed 2026-10-11 11:58:57 +08:00
1 parent 0f37f2fde9
commit 00ddb296ac
2 files changed
+10 -10

No files matched your search

+9 -9
View File
@@ -22,7 +22,7 @@ class _str:
for i, ch in enumerate(src):
if ch >= 97:
if ch <= 122:
buf[i] = ch - 32
buf[i] = char(ch - 32)
else:
buf[i] = ch
else:
@@ -38,7 +38,7 @@ class _str:
for i, ch in enumerate(src):
if ch >= 65:
if ch <= 90:
buf[i] = ch + 32
buf[i] = char(ch + 32)
else:
buf[i] = ch
else:
@@ -57,7 +57,7 @@ class _str:
first = False
if ch >= 97:
if ch <= 122:
buf[i] = ch - 32
buf[i] = char(ch - 32)
else:
buf[i] = ch
else:
@@ -65,7 +65,7 @@ class _str:
else:
if ch >= 65:
if ch <= 90:
buf[i] = ch + 32
buf[i] = char(ch + 32)
else:
buf[i] = ch
else:
@@ -81,13 +81,13 @@ class _str:
for i, ch in enumerate(src):
if ch >= 97:
if ch <= 122:
buf[i] = ch - 32
buf[i] = char(ch - 32)
else:
buf[i] = ch
else:
if ch >= 65:
if ch <= 90:
buf[i] = ch + 32
buf[i] = char(ch + 32)
else:
buf[i] = ch
else:
@@ -114,7 +114,7 @@ class _str:
if prev_alpha:
if ch >= 65:
if ch <= 90:
buf[i] = ch + 32
buf[i] = char(ch + 32)
else:
buf[i] = ch
else:
@@ -122,7 +122,7 @@ class _str:
else:
if ch >= 97:
if ch <= 122:
buf[i] = ch - 32
buf[i] = char(ch - 32)
else:
buf[i] = ch
else:
@@ -141,7 +141,7 @@ class _str:
for i, ch in enumerate(src):
if ch >= 65:
if ch <= 90:
buf[i] = ch + 32
buf[i] = char(ch + 32)
else:
buf[i] = ch
else:
+1 -1
View File
@@ -105,7 +105,7 @@ def _init_argv_win32():
argv_arr[argc] = str(buf + j)
argc += 1
in_arg = True
buf[j] = ch
buf[j] = char(ch)
j += 1
if in_arg: buf[j] = 0
_argc = argc