diff --git a/src/db/db/dbOriginalLayerRegion.cc b/src/db/db/dbOriginalLayerRegion.cc index cb5c02737..d87da0dca 100644 --- a/src/db/db/dbOriginalLayerRegion.cc +++ b/src/db/db/dbOriginalLayerRegion.cc @@ -153,7 +153,6 @@ OriginalLayerRegion::OriginalLayerRegion (const OriginalLayerRegion &other) OriginalLayerRegion::OriginalLayerRegion (const RecursiveShapeIterator &si, bool is_merged) : AsIfFlatRegion (), m_merged_polygons (false), m_iter (si) { - tl_assert (si.layout ()); init (); m_is_merged = is_merged; @@ -162,7 +161,6 @@ OriginalLayerRegion::OriginalLayerRegion (const RecursiveShapeIterator &si, bool OriginalLayerRegion::OriginalLayerRegion (const RecursiveShapeIterator &si, const db::ICplxTrans &trans, bool merged_semantics, bool is_merged) : AsIfFlatRegion (), m_merged_polygons (false), m_iter (si), m_iter_trans (trans) { - tl_assert (si.layout ()); init (); m_is_merged = is_merged; @@ -423,7 +421,10 @@ OriginalLayerRegion::insert_into (Layout *layout, db::cell_index_type into_cell, db::Shapes &sh = layout->cell (into_cell).shapes (into_layer); - db::PropertyMapper pm (*layout, *m_iter.layout ()); + db::PropertyMapper pm; + if (m_iter.layout ()) { + pm = db::PropertyMapper (*layout, *m_iter.layout ()); + } // NOTE: if the source (r) is from the same layout than the shapes live in, we better // lock the layout against updates while inserting diff --git a/src/db/db/dbRegion.h b/src/db/db/dbRegion.h index e891e4af5..d267b7707 100644 --- a/src/db/db/dbRegion.h +++ b/src/db/db/dbRegion.h @@ -1166,7 +1166,7 @@ public: * * The first region delivered will be the AND result, the second one the NOT result. */ - std::pair andnot (const Region &other, PropertyConstraint prop_constraint = db::NoPropertyConstraint) const + std::pair andnot (const Region &other, PropertyConstraint prop_constraint = db::IgnoreProperties) const { std::pair res = mp_delegate->andnot_with (other, prop_constraint); return std::make_pair (Region (res.first), Region (res.second)); diff --git a/testdata/algo/deep_region_au40.gds b/testdata/algo/deep_region_au40.gds index 2999bb979..c6764b0b6 100644 Binary files a/testdata/algo/deep_region_au40.gds and b/testdata/algo/deep_region_au40.gds differ diff --git a/testdata/algo/flat_region_au40.gds b/testdata/algo/flat_region_au40.gds index a99bba994..bb410687a 100644 Binary files a/testdata/algo/flat_region_au40.gds and b/testdata/algo/flat_region_au40.gds differ