Skip to content

Commit 120db44

Browse files
authored
Remove address violation with safe_sort (#55984)
1 parent ffbc9c8 commit 120db44

File tree

2 files changed

+2
-11
lines changed

2 files changed

+2
-11
lines changed

pandas/core/algorithms.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1630,11 +1630,12 @@ def safe_sort(
16301630
if use_na_sentinel:
16311631
# take_nd is faster, but only works for na_sentinels of -1
16321632
order2 = sorter.argsort()
1633-
new_codes = take_nd(order2, codes, fill_value=-1)
16341633
if verify:
16351634
mask = (codes < -len(values)) | (codes >= len(values))
1635+
codes[mask] = 0
16361636
else:
16371637
mask = None
1638+
new_codes = take_nd(order2, codes, fill_value=-1)
16381639
else:
16391640
reverse_indexer = np.empty(len(sorter), dtype=int)
16401641
reverse_indexer.put(sorter, np.arange(len(sorter)))

pandas/tests/test_sorting.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@
55
import numpy as np
66
import pytest
77

8-
from pandas.compat import (
9-
is_ci_environment,
10-
is_platform_windows,
11-
)
12-
138
from pandas import (
149
NA,
1510
DataFrame,
@@ -409,11 +404,6 @@ def test_codes(self, verify, codes, exp_codes):
409404
tm.assert_numpy_array_equal(result, expected)
410405
tm.assert_numpy_array_equal(result_codes, expected_codes)
411406

412-
@pytest.mark.skipif(
413-
is_platform_windows() and is_ci_environment(),
414-
reason="In CI environment can crash thread with: "
415-
"Windows fatal exception: access violation",
416-
)
417407
def test_codes_out_of_bound(self):
418408
values = np.array([3, 1, 2, 0, 4])
419409
expected = np.array([0, 1, 2, 3, 4])

0 commit comments

Comments
 (0)