fix(narrow): ClassGenEnum RenumClassVariantCounts 元素读取改用 int(...)
n_first_v(1029) 与 vcount(1010/1055) 承接 sizet* 元素,原先 64->32 隐式窄化;改用显式 int(...) 保持原截断语义
This commit is contained in:
1 parent
7468b007f7
commit
3b9deb08d8
1 file changed
+3
-3
@@ -1007,7 +1007,7 @@ novirtual class ClassGenEnum(ClassGenBase.ClassGenBase):
|
||||
if variant_name is None or self.RenumClassNames is None: return None
|
||||
|
||||
for i in range(self.RenumClassCount):
|
||||
vcount: int = self.RenumClassVariantCounts[i]
|
||||
vcount: int = int(self.RenumClassVariantCounts[i])
|
||||
for j in range(vcount):
|
||||
name_offset: sizet = i * RENUM_VARIANT_PER_CLASS + j
|
||||
vname: str = str(self.RenumVariantNames[name_offset])
|
||||
@@ -1026,7 +1026,7 @@ novirtual class ClassGenEnum(ClassGenBase.ClassGenBase):
|
||||
if self.RenumClassNames is not None and self.RenumClassCount > 0:
|
||||
cls_first = str(self.RenumClassNames[0])
|
||||
if self.RenumVariantNames is not None and self.RenumClassVariantCounts is not None:
|
||||
n_first_v = self.RenumClassVariantCounts[0]
|
||||
n_first_v = int(self.RenumClassVariantCounts[0])
|
||||
if n_first_v > 0: v_first = str(self.RenumVariantNames[0])
|
||||
viperlib.snprintf(buf, 256, "count=%d first=%s vcount=%d vfirst=%s", self.RenumClassCount, cls_first, n_first_v, v_first)
|
||||
return buf
|
||||
@@ -1052,7 +1052,7 @@ novirtual class ClassGenEnum(ClassGenBase.ClassGenBase):
|
||||
for i in range(self.RenumClassCount):
|
||||
existing: str = str(self.RenumClassNames[i])
|
||||
if existing is None or string.strcmp(existing, class_name) != 0: continue
|
||||
vcount: int = self.RenumClassVariantCounts[i]
|
||||
vcount: int = int(self.RenumClassVariantCounts[i])
|
||||
for j in range(vcount):
|
||||
name_offset: sizet = i * RENUM_VARIANT_PER_CLASS + j
|
||||
vname: str = str(self.RenumVariantNames[name_offset])
|
||||
|
||||
Reference in new issue
Block a user