From 7099d8d50270a0a99d957add3cdaea79a0e3e7a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=82=E4=B9=8B=E9=92=B3?= Date: Fri, 24 Jul 2026 06:21:25 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20step=5Fimport=20=E2=80=94=20use=20find/i?= =?UTF-8?q?nsert=5For=5Fassign=20for=20unordered=5Fmap=20of=20non-default-?= =?UTF-8?q?constructible=20types?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/brep/step_import.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/brep/step_import.cpp b/src/brep/step_import.cpp index 0abb53b..5148c70 100644 --- a/src/brep/step_import.cpp +++ b/src/brep/step_import.cpp @@ -1225,7 +1225,8 @@ private: } curves::NurbsCurve get_or_build_curve(int ref) { - if (curve_cache_.count(ref)) return curve_cache_[ref]; + auto cit = curve_cache_.find(ref); + if (cit != curve_cache_.end()) return cit->second; if (!entities_.count(ref)) { // Return a dummy curve return curves::NurbsCurve({Point3D(0,0,0), Point3D(1,0,0)}, {0,0,1,1}, {1,1}, 1); @@ -1251,12 +1252,13 @@ private: set_error(StepError::EntityTypeError, "Error building curve #" + std::to_string(ref) + ": " + e.what()); nc = curves::NurbsCurve({Point3D(0,0,0), Point3D(1,0,0)}, {0,0,1,1}, {1,1}, 1); } - curve_cache_[ref] = nc; + curve_cache_.insert_or_assign(ref, nc); return nc; } curves::NurbsSurface get_or_build_surface(int ref) { - if (surface_cache_.count(ref)) return surface_cache_[ref]; + auto sit = surface_cache_.find(ref); + if (sit != surface_cache_.end()) return sit->second; if (!entities_.count(ref)) { // Return a dummy surface std::vector> g = {{Point3D(0,0,0), Point3D(1,0,0)}, @@ -1293,7 +1295,7 @@ private: {Point3D(0,1,0), Point3D(1,1,0)}}; ns = curves::NurbsSurface(g, {0,0,1,1}, {0,0,1,1}, {}, 1, 1); } - surface_cache_[ref] = ns; + surface_cache_.insert_or_assign(ref, ns); return ns; }