From a5ebdbe87e2c7f21e10a0db66022e6ca0f9ad1c5 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 11 Apr 2018 14:19:02 +0300 Subject: [PATCH] 0023544: SMESH's performance issues --- src/SMDS/SMDS_ElementFactory.hxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/SMDS/SMDS_ElementFactory.hxx b/src/SMDS/SMDS_ElementFactory.hxx index b25b635c8..3dbc1ab17 100644 --- a/src/SMDS/SMDS_ElementFactory.hxx +++ b/src/SMDS/SMDS_ElementFactory.hxx @@ -266,8 +266,13 @@ struct _RangeSet */ attr_t SetValue( int theIndex, attr_t theValue ) { - set_iterator rNext = mySet.upper_bound( theIndex ); + set_iterator rNext = mySet.end(); // case of adding elements set_iterator r = rNext - 1; + if ( r->my1st > theIndex ) + { + rNext = mySet.upper_bound( theIndex ); + r = rNext - 1; + } int rSize = Size( r ); // range size attr_t rValue = r->myValue; if ( rValue == theValue ) -- 2.30.2