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
|
if variant_name is None or self.RenumClassNames is None: return None
|
||||||
|
|
||||||
for i in range(self.RenumClassCount):
|
for i in range(self.RenumClassCount):
|
||||||
vcount: int = self.RenumClassVariantCounts[i]
|
vcount: int = int(self.RenumClassVariantCounts[i])
|
||||||
for j in range(vcount):
|
for j in range(vcount):
|
||||||
name_offset: sizet = i * RENUM_VARIANT_PER_CLASS + j
|
name_offset: sizet = i * RENUM_VARIANT_PER_CLASS + j
|
||||||
vname: str = str(self.RenumVariantNames[name_offset])
|
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:
|
if self.RenumClassNames is not None and self.RenumClassCount > 0:
|
||||||
cls_first = str(self.RenumClassNames[0])
|
cls_first = str(self.RenumClassNames[0])
|
||||||
if self.RenumVariantNames is not None and self.RenumClassVariantCounts is not None:
|
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])
|
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)
|
viperlib.snprintf(buf, 256, "count=%d first=%s vcount=%d vfirst=%s", self.RenumClassCount, cls_first, n_first_v, v_first)
|
||||||
return buf
|
return buf
|
||||||
@@ -1052,7 +1052,7 @@ novirtual class ClassGenEnum(ClassGenBase.ClassGenBase):
|
|||||||
for i in range(self.RenumClassCount):
|
for i in range(self.RenumClassCount):
|
||||||
existing: str = str(self.RenumClassNames[i])
|
existing: str = str(self.RenumClassNames[i])
|
||||||
if existing is None or string.strcmp(existing, class_name) != 0: continue
|
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):
|
for j in range(vcount):
|
||||||
name_offset: sizet = i * RENUM_VARIANT_PER_CLASS + j
|
name_offset: sizet = i * RENUM_VARIANT_PER_CLASS + j
|
||||||
vname: str = str(self.RenumVariantNames[name_offset])
|
vname: str = str(self.RenumVariantNames[name_offset])
|
||||||
|
|||||||
Reference in new issue
Block a user