geomatics-io / ObjectListView

ObjectListView is a .NET ListView wired on caffeine, guarana and steroids. More calmly, it is a C# wrapper around a .NET ListView, which makes the ListView much easier to use and teaches it lots of neat new tricks.
http://objectlistview.sourceforge.net/cs/index.html
GNU General Public License v3.0
118 stars 59 forks source link

FastObjectListView - MoveObjects() attempts invalid insertion with index -1 #13

Open PyroGenesis opened 2 years ago

PyroGenesis commented 2 years ago

When I used MoveObjects() with an index of 0 with a collection of objects that includes the first object (at index 0), I get an IndexOutOfRangeException because it will try to insert objects at index -1.

I narrowed it down to this block of code in MoveObjects(): https://github.com/geomatics-io/ObjectListView/blob/8a10cbd934adca7991b2447298a9f22c67368a70/ObjectListView/FastObjectListView.cs#L123-L128

Since, the first object (at index 0) will satisfy the if condition, the index will be decreased from 0 to -1. Should this condition be changed to if (i >= 0 && i < index) instead?