fix: 曲线通道重建截面时防崩溃 #34

Merged
gjm merged 1 commits from company-desktop-computer/fix/ewpipebase-curve-read-guard AGit into main 2026-10-22 10:26:59 +08:00
Collaborator

RegionFromCurvesDwgInFields 里两处:

  • isRegionNull(pRegion) && isRegionNull(pRegionBig) 改为 ||,原写法要求
    两个都无效才跳过,实际 pRegionBig 此时必非空,条件恒假,无效 region
    照样进布尔运算
  • booleanOper 改走已有的 rawBooleanOperWrapper,ACIS 内部异常时由 SEH
    捕获,不再直接崩 CAD

顺带 delete pRegion:arRegPtrs 不拥有对象,原来 subtract 完没有释放。

曲线通道只读,spline 参数在写端从未落盘,几何缺失无法靠读端修复,
本次只处理崩溃路径,重建逻辑与启发式保持原样。

RegionFromCurvesDwgInFields 里两处: - isRegionNull(pRegion) && isRegionNull(pRegionBig) 改为 ||,原写法要求 两个都无效才跳过,实际 pRegionBig 此时必非空,条件恒假,无效 region 照样进布尔运算 - booleanOper 改走已有的 rawBooleanOperWrapper,ACIS 内部异常时由 SEH 捕获,不再直接崩 CAD 顺带 delete pRegion:arRegPtrs 不拥有对象,原来 subtract 完没有释放。 曲线通道只读,spline 参数在写端从未落盘,几何缺失无法靠读端修复, 本次只处理崩溃路径,重建逻辑与启发式保持原样。
company-desktop-computer added 1 commit 2026-10-22 10:24:56 +08:00
RegionFromCurvesDwgInFields 里两处:

- isRegionNull(pRegion) && isRegionNull(pRegionBig) 改为 ||,原写法要求
  两个都无效才跳过,实际 pRegionBig 此时必非空,条件恒假,无效 region
  照样进布尔运算
- booleanOper 改走已有的 rawBooleanOperWrapper,ACIS 内部异常时由 SEH
  捕获,不再直接崩 CAD

顺带 delete pRegion:arRegPtrs 不拥有对象,原来 subtract 完没有释放。

曲线通道只读,spline 参数在写端从未落盘,几何缺失无法靠读端修复,
本次只处理崩溃路径,重建逻辑与启发式保持原样。
gjm approved these changes 2026-10-22 10:26:49 +08:00
gjm merged commit 8110cad4c0 into main 2026-10-22 10:26:59 +08:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gjm/envi-code#34