1515#include < utility>
1616#include < vector>
1717
18+ #include " odb/PtrSetMap.h"
1819#include " odb/db.h"
1920#include " odb/dbObject.h"
2021#include " odb/dbTransform.h"
@@ -84,8 +85,7 @@ using AlignmentViolationReporter
8485 const std::string&)>;
8586
8687void matchMarkersBetweenChips (
87- const std::unordered_map<dbMaster*, std::vector<dbAlignmentMarkerRule*>>&
88- rules_by_master,
88+ const PtrMap<dbMaster, std::vector<dbAlignmentMarkerRule*>>& rules_by_master,
8989 const std::vector<AlignmentMarkerIndex::Value>& list_a,
9090 const std::vector<AlignmentMarkerIndex::Value>& list_b,
9191 dbUnfoldedChipInst* c_a,
@@ -496,8 +496,7 @@ void Checker::checkAlignmentMarkers(dbMarkerCategory* top_cat)
496496{
497497 // Build the per-master rule index. Local to this check; alignment-marker
498498 // rules are queried only here, so there's no point persisting it.
499- std::unordered_map<dbMaster*, std::vector<dbAlignmentMarkerRule*>>
500- rules_by_master;
499+ PtrMap<dbMaster, std::vector<dbAlignmentMarkerRule*>> rules_by_master;
501500 for (dbAlignmentMarkerRule* rule : db_->getAlignmentMarkerRules ()) {
502501 rules_by_master[rule->getMasterA ()].push_back (rule);
503502 if (rule->getMasterB () != rule->getMasterA ()) {
@@ -510,8 +509,7 @@ void Checker::checkAlignmentMarkers(dbMarkerCategory* top_cat)
510509
511510 // Materialize the per-chip marker lists by walking each unfolded chip's
512511 // leaf block and filtering by master against the rule index.
513- std::unordered_map<dbUnfoldedChipInst*, std::vector<UnfoldedAlignmentMarker>>
514- markers;
512+ PtrMap<dbUnfoldedChipInst, std::vector<UnfoldedAlignmentMarker>> markers;
515513 for (dbUnfoldedChipInst* chip : db_->getUnfoldedChipInsts ()) {
516514 std::vector<dbChipInst*> path = chip->getChipInstPath ();
517515 if (path.empty ()) {
0 commit comments