ObjFW  Diff

Differences From Artifact [ef9ecd25ad]:

To Artifact [7a6a7331fd]:


37
38
39
40
41
42
43

44
45


46
47
48
49
50
51
52



53
54
55
56
57




58
59
60
61



62
63
64
65
66




67
68
69
70




71
72
73
74











75
76
77
78
79
80
81
37
38
39
40
41
42
43
44


45
46
47






48
49
50
51




52
53
54
55
56



57
58
59
60




61
62
63
64
65



66
67
68
69
70



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88







+
-
-
+
+

-
-
-
-
-
-
+
+
+

-
-
-
-
+
+
+
+

-
-
-
+
+
+

-
-
-
-
+
+
+
+

-
-
-
+
+
+
+

-
-
-
+
+
+
+
+
+
+
+
+
+
+








@interface OFMutableArray_placeholder: OFMutableArray
@end

static void
quicksort(OFMutableArray *array, size_t left, size_t right)
{
	while (left < right) {
	size_t i, j;
	id pivot;
		size_t i, j;
		id pivot;

	if (left >= right)
		return;

	i = left;
	j = right - 1;
	pivot = [array objectAtIndex: right];
		i = left;
		j = right - 1;
		pivot = [array objectAtIndex: right];

	do {
		while ([[array objectAtIndex: i] compare: pivot] !=
		    OF_ORDERED_DESCENDING && i < right)
			i++;
		do {
			while ([[array objectAtIndex: i] compare: pivot] !=
			    OF_ORDERED_DESCENDING && i < right)
				i++;

		while ([[array objectAtIndex: j] compare: pivot] !=
		    OF_ORDERED_ASCENDING && j > left)
			j--;
			while ([[array objectAtIndex: j] compare: pivot] !=
			    OF_ORDERED_ASCENDING && j > left)
				j--;

		if (i < j)
			[array exchangeObjectAtIndex: i
				   withObjectAtIndex: j];
	} while (i < j);
			if (i < j)
				[array exchangeObjectAtIndex: i
					   withObjectAtIndex: j];
		} while (i < j);

	if ([[array objectAtIndex: i] compare: pivot] == OF_ORDERED_DESCENDING)
		[array exchangeObjectAtIndex: i
			   withObjectAtIndex: right];
		if ([[array objectAtIndex: i] compare: pivot] ==
		    OF_ORDERED_DESCENDING)
			[array exchangeObjectAtIndex: i
				   withObjectAtIndex: right];

	if (i > 0)
		quicksort(array, left, i - 1);
	quicksort(array, i + 1, right);
		if (i > 0) {
			if (i > left && i - 1 - left > right - i - 1) {
				right = i - 1;
				quicksort(array, i + 1, right);
			} else {
				quicksort(array, left, i - 1);
				left = i + 1;
			}
		} else
			left = i + 1;
	}
}

@implementation OFMutableArray_placeholder
- init
{
	return (id)[[OFMutableArray_adjacent alloc] init];
}