You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Attempting to enumerate a SkipList<int> whose head node has been removed leads to the program running indefinitely. The head can be removed by calling Remove(0), the defualt value for int, whilst the list contains a negative int.
To Reproduce
Reproducing this bug can be done as follows:
Instantiate a new SkipList<int> var list = new SkipList<int>();
Add any negative integer to the list list.Add(-23);
Attempt to remove 0 (the head node) from the list list.Remove(0);
Perform (almost) any operation that enumerates the skip list list.Contains(2);
Expected behavior list.Remove(0); should not modify the list unless 0 has been added explicitly.
Environment
OS: Windows 10 Home (Version 10.0.18362 Build 18362)
.NET Version: .NET Core v3.1.101
IDE: Microsoft Visual Studio Community 2019 - Version 16.4.5
Additional context
The bug can only be reproduced if the SkipList<int> contains at least one negative integer.
The bug will not occur if the value 0 has been added to (and not removed from) the SkipList<int>.
Step 4 in To Reproduce can be replaced by any function that iterates over the skip list: Contains, Find, Remove, for-each looping over the list, etc.
NB: Contains and Find will function as intended if you search for an int that exists in the list (list.Contains(-23); in the case of the example would still work).
The text was updated successfully, but these errors were encountered:
Describe the bug
Attempting to enumerate a SkipList<int> whose head node has been removed leads to the program running indefinitely. The head can be removed by calling Remove(0), the defualt value for int, whilst the list contains a negative int.
To Reproduce
Reproducing this bug can be done as follows:
var list = new SkipList<int>();
list.Add(-23);
list.Remove(0);
list.Contains(2);
Expected behavior
list.Remove(0);
should not modify the list unless 0 has been added explicitly.Environment
OS: Windows 10 Home (Version 10.0.18362 Build 18362)
.NET Version: .NET Core v3.1.101
IDE: Microsoft Visual Studio Community 2019 - Version 16.4.5
Additional context
The bug can only be reproduced if the SkipList<int> contains at least one negative integer.
The bug will not occur if the value 0 has been added to (and not removed from) the SkipList<int>.
Step 4 in To Reproduce can be replaced by any function that iterates over the skip list: Contains, Find, Remove, for-each looping over the list, etc.
NB: Contains and Find will function as intended if you search for an int that exists in the list (
list.Contains(-23);
in the case of the example would still work).The text was updated successfully, but these errors were encountered: