Salome HOME
0023544: SMESH's performance issues
authoreap <eap@opencascade.com>
Wed, 11 Apr 2018 11:19:02 +0000 (14:19 +0300)
committereap <eap@opencascade.com>
Wed, 11 Apr 2018 11:19:02 +0000 (14:19 +0300)
src/SMDS/SMDS_ElementFactory.hxx

index b25b635..3dbc1ab 100644 (file)
@@ -266,8 +266,13 @@ struct _RangeSet
    */
   attr_t SetValue( int theIndex, attr_t theValue )
   {
    */
   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;
     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 )
     int          rSize = Size( r ); // range size
     attr_t      rValue = r->myValue;
     if ( rValue == theValue )