EDIT: Doh! false alarm… I had the debugger set to break on anything and it was giving me some random error on startup that was completely unrelated to this…
Ok then again maybe not. On my laptop (win 2000), running that program causes all kinds of corrupted normal block errors in the memmove function. On my desktop (xp) it runs fine.
Just looked at the move() method, and I was clearly drunk when I wrote it, as it’s trying to do a negative sized memmove. Sorry about that, very stupid of me.
Try this:
[code] void move (const int currentIndex,
int newIndex) throw()
{
if (currentIndex != newIndex)
{
lock.enter();