fix: GetInterface 数组版 bSizeUnLock 被 memset 清成 false
inf.bSizeUnLock = true 原来写在循环外,循环内每次都 memset(&inf, 0, ...), 赋值被清掉,数组版返回的接口实际一直是"锁定"状态。 把赋值挪到 memset 之后;循环外那两行初始化(bSizeUnLock / dGasket)删掉, memset 之后本来就是 0。 bSizeUnLock 目前只在 i_AecDbXEquipment.cpp 里序列化,没有读取判断的地方, 所以此前没暴露成故障。
This commit is contained in:
1 parent
6a375aea75
commit
e448dbacfd
2 files changed
+2
-3
No files matched your search
@@ -3280,8 +3280,6 @@ bool AecDbEwEquipment::GetInterface(AcArray<AecInterface>& arInfs) const
|
||||
}
|
||||
|
||||
AecInterface inf;
|
||||
inf.bSizeUnLock = true;//不锁定
|
||||
inf.dGasket = 0;
|
||||
AecEqui::XPrimData* p3dSolid(NULL);
|
||||
|
||||
for (int i = 0; i < m_arSubPrimPtrs.GetSize(); i++)
|
||||
@@ -3292,6 +3290,7 @@ bool AecDbEwEquipment::GetInterface(AcArray<AecInterface>& arInfs) const
|
||||
if (!pNoze) continue;
|
||||
|
||||
::memset(&inf, 0, sizeof(AecInterface));
|
||||
inf.bSizeUnLock = true; //不锁定;必须放在 memset 之后,否则每次都被清成 false
|
||||
GetInfFaceInf(p3dSolid, vtDir, ptGe, 1);
|
||||
|
||||
ptGe.transformBy(xform);
|
||||
|
||||
Reference in new issue
Block a user