Skip to content

Commit 5f7cd68

Browse files
committed
required changes
Signed-off-by: osamahammad21 <[email protected]>
1 parent 3076b9d commit 5f7cd68

File tree

5 files changed

+22
-7
lines changed

5 files changed

+22
-7
lines changed

src/odb/include/odb/db.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7133,6 +7133,8 @@ class dbChipInst : public dbObject
71337133

71347134
dbSet<dbChipRegionInst> getRegions() const;
71357135

7136+
dbChipRegionInst* findChipRegionInst(dbChipRegion* chip_region) const;
7137+
71367138
dbChipRegionInst* findChipRegionInst(const std::string& name) const;
71377139

71387140
static odb::dbChipInst* create(dbChip* parent_chip,

src/odb/src/codeGenerator/schema/chip/dbChipInst.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@
4242
},
4343
{
4444
"name":"region_insts_map_",
45-
"type":"std::unordered_map<std::string, dbId<_dbChipRegionInst>>",
46-
"flags":["private", "no-serial"]
45+
"type":"std::unordered_map<dbId<_dbChipRegion>, dbId<_dbChipRegionInst>>",
46+
"flags":["private", "no-serial", "no-template"]
4747
}
4848
],
4949
"h_includes": [

src/odb/src/db/dbChipInst.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,17 +162,26 @@ dbSet<dbChipRegionInst> dbChipInst::getRegions() const
162162
return dbSet<dbChipRegionInst>(_chipinst, _db->chip_region_inst_itr_);
163163
}
164164

165-
dbChipRegionInst* dbChipInst::findChipRegionInst(const std::string& name) const
165+
dbChipRegionInst* dbChipInst::findChipRegionInst(
166+
dbChipRegion* chip_region) const
166167
{
168+
if (chip_region == nullptr) {
169+
return nullptr;
170+
}
167171
_dbChipInst* obj = (_dbChipInst*) this;
168-
auto it = obj->region_insts_map_.find(name);
172+
auto it = obj->region_insts_map_.find(chip_region->getId());
169173
if (it != obj->region_insts_map_.end()) {
170174
auto db = (_dbDatabase*) obj->getOwner();
171175
return (dbChipRegionInst*) db->chip_region_inst_tbl_->getPtr((*it).second);
172176
}
173177
return nullptr;
174178
}
175179

180+
dbChipRegionInst* dbChipInst::findChipRegionInst(const std::string& name) const
181+
{
182+
return findChipRegionInst(getMasterChip()->findChipRegion(name));
183+
}
184+
176185
dbChipInst* dbChipInst::create(dbChip* parent_chip,
177186
dbChip* master_chip,
178187
const std::string& name)
@@ -226,7 +235,7 @@ dbChipInst* dbChipInst::create(dbChip* parent_chip,
226235
regioninst->parent_chipinst_ = chipinst->getOID();
227236
regioninst->chip_region_inst_next_ = chipinst->chip_region_insts_;
228237
chipinst->chip_region_insts_ = regioninst->getOID();
229-
chipinst->region_insts_map_[region->getName()] = regioninst->getOID();
238+
chipinst->region_insts_map_[region->getId()] = regioninst->getOID();
230239
// create chipBumpInsts
231240
for (auto bump : region->getChipBumps()) {
232241
_dbChipBumpInst* bumpinst = db->chip_bump_inst_tbl_->create();

src/odb/src/db/dbChipInst.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ class dbOStream;
1818
class _dbDatabase;
1919
class _dbChip;
2020
class _dbChipRegionInst;
21+
// User Code Begin Classes
22+
class _dbChipRegion;
23+
// User Code End Classes
2124

2225
class _dbChipInst : public _dbObject
2326
{
@@ -36,7 +39,8 @@ class _dbChipInst : public _dbObject
3639
dbId<_dbChip> parent_chip_;
3740
dbId<_dbChipInst> chipinst_next_;
3841
dbId<_dbChipRegionInst> chip_region_insts_;
39-
std::unordered_map<std::string, dbId<_dbChipRegionInst>> region_insts_map_;
42+
std::unordered_map<dbId<_dbChipRegion>, dbId<_dbChipRegionInst>>
43+
region_insts_map_;
4044
};
4145
dbIStream& operator>>(dbIStream& stream, _dbChipInst& obj);
4246
dbOStream& operator<<(dbOStream& stream, const _dbChipInst& obj);

src/odb/src/db/dbDatabase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ dbIStream& operator>>(dbIStream& stream, _dbDatabase& obj)
311311
// Set the region_insts_map_ of the chipinst
312312
for (const auto& chip_region_inst : db->getChipRegionInsts()) {
313313
_dbChipInst* chipinst = (_dbChipInst*) chip_region_inst->getChipInst();
314-
chipinst->region_insts_map_[chip_region_inst->getChipRegion()->getName()]
314+
chipinst->region_insts_map_[chip_region_inst->getId()]
315315
= chip_region_inst->getId();
316316
}
317317
// User Code End >>

0 commit comments

Comments
 (0)