修复相机 HLR 结果处理中的三处正确性缺陷 #79

Merged
gjm merged 1 commits from company-desktop-computer/fix-hlr-b-series AGit into main 2026-10-26 21:23:07 +08:00
Collaborator

B1 mergeEnvelope:命中 isNull() 的 3DSOLID 时 pSolidAll 已赋值但未从 arptrs 摘除,
后续 deleteArrayVoidPtrs 会把它删掉,返回野指针。改为记下标、循环结束后统一 removeAt。

B2 process_result:outputWithoutID.append(entAr) 误写在 for 循环体内,每轮把累积数组
整体再追加一次,同一指针在 outputWithoutID 中出现多次,AddToModelSpace 第二次失败后
DELETE_PTR 会删掉已入库的实体。append 移到循环外,并先 entAr.removeAll()。

B3 process_result:erase 之后把 it 重置成 begin(),for 的 ++it 会跳过新的首元素,
多个构筑物时漏处理。改为 while + 先取 next 迭代器。

同时更新 HRL-MODEL-refactor.md:去掉未实施的内存账本方案,验证方法改为行为观察。

B1 mergeEnvelope:命中 isNull() 的 3DSOLID 时 pSolidAll 已赋值但未从 arptrs 摘除, 后续 deleteArrayVoidPtrs 会把它删掉,返回野指针。改为记下标、循环结束后统一 removeAt。 B2 process_result:outputWithoutID.append(entAr) 误写在 for 循环体内,每轮把累积数组 整体再追加一次,同一指针在 outputWithoutID 中出现多次,AddToModelSpace 第二次失败后 DELETE_PTR 会删掉已入库的实体。append 移到循环外,并先 entAr.removeAll()。 B3 process_result:erase 之后把 it 重置成 begin(),for 的 ++it 会跳过新的首元素, 多个构筑物时漏处理。改为 while + 先取 next 迭代器。 同时更新 HRL-MODEL-refactor.md:去掉未实施的内存账本方案,验证方法改为行为观察。
company-desktop added 1 commit 2026-10-26 21:12:36 +08:00
B1 mergeEnvelope:命中 isNull() 的 3DSOLID 时 pSolidAll 已赋值但未从 arptrs 摘除,
后续 deleteArrayVoidPtrs 会把它删掉,返回野指针。改为记下标、循环结束后统一 removeAt。

B2 process_result:outputWithoutID.append(entAr) 误写在 for 循环体内,每轮把累积数组
整体再追加一次,同一指针在 outputWithoutID 中出现多次,AddToModelSpace 第二次失败后
DELETE_PTR 会删掉已入库的实体。append 移到循环外,并先 entAr.removeAll()。

B3 process_result:erase 之后把 it 重置成 begin(),for 的 ++it 会跳过新的首元素,
多个构筑物时漏处理。改为 while + 先取 next 迭代器。

同时更新 HRL-MODEL-refactor.md:去掉未实施的内存账本方案,验证方法改为行为观察。
gjm approved these changes 2026-10-26 21:23:04 +08:00
gjm merged commit 1d9e94481f into main 2026-10-26 21:23:07 +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#79