<div dir="ltr"><div class="gmail_default" style="font-family:'courier new',monospace">Hi All,</div><div class="gmail_default" style="font-family:'courier new',monospace"><br></div><div class="gmail_default" style="font-family:'courier new',monospace">


I encountered a very strange problem.  The code looks like this:</div><div class="gmail_default" style="font-family:'courier new',monospace"><br></div><div class="gmail_default" style="font-family:'courier new',monospace">


//In Unit1.pas:</div><div class="gmail_default" style="font-family:'courier new',monospace"><br></div><div class="gmail_default" style="font-family:'courier new',monospace">//sel is an object of TIntVector and</div>


<div class="gmail_default" style="font-family:'courier new',monospace">//TIntVector = specialize TVector<Integer></div><div class="gmail_default" style="font-family:'courier new',monospace"><b>sel.Sort([soEliminateNA, soReversed]);<br>


</b></div><div class="gmail_default"><div style="font-family:'courier new',monospace"><br></div><div style="font-family:'courier new',monospace">//In vector.pas:</div><div style="font-family:'courier new',monospace">


<br></div><div><div><font face="courier new, monospace">procedure TVector.Sort(Options: SortOptions);</font></div><div><font face="courier new, monospace">var</font></div><div><font face="courier new, monospace">  i, gap, order, first, last, pos: Integer;</font></div>


<div><font face="courier new, monospace">  Temp: T;</font></div><div><font face="courier new, monospace">begin</font></div><div><font face="courier new, monospace">  <b>if FCount < 2 then</b></font><span style="font-family:'courier new',monospace"><b> Exit; <font color="#ff0000"> <-- problem here</font></b></span><br>


</div><div><font face="courier new, monospace">  if soReversed in Options then order := 1 else order := -1;</font></div><div><font face="courier new, monospace">  ... ...</font></div></div><div><font face="courier new, monospace"><br>


</font></div><div><font face="courier new, monospace">My purpose is to skip sorting if the vector's element count is less than 2.</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Now the problem is that this statement does not have any effect (see attached screenshot).  The debugger refuse to stop on the breakpoint, but goes directly to the line below it!</font></div>


<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">What's more strange is that if I change the line to break after “then”, i.e.:</font></div><div><font face="courier new, monospace"><br>


</font></div><div><div><font face="courier new, monospace">begin</font></div><div><font face="courier new, monospace">  <b>if FCount < 2 then</b></font><span style="font-family:'courier new',monospace"><b> </b></span></div>


<div><span style="font-family:'courier new',monospace"><b>    Exit;</b></span><br></div><div><font face="courier new, monospace">  if soReversed in Options then order := 1 else order := -1;</font></div><div><font face="courier new, monospace">  ... ...</font></div>


</div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Now it worked!</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">I also wrote a simple test program, but can NOT reproduce this bug there.</font></div>


<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">My TVector source code is here: <a href="https://github.com/xrfang/fpcollection/blob/master/src/units/vector.pas" target="_blank">https://github.com/xrfang/fpcollection/blob/master/src/units/vector.pas</a></font></div>


<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Any help is greatly appreciated.</font></div><div><font face="courier new, monospace"><br>


</font></div><div><font face="courier new, monospace">Sincerely,</font></div><div><font face="courier new, monospace">Xiangrong</font></div></div></div>