ObjFW  Diff

Differences From Artifact [b087bc3ca0]:

To Artifact [02a02cd5d6]:


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

89
90

91
92
93

94
95
96
97
98

99
100

101
102
103

104
105

106
107
108

109
110
111
112
113
114
115
116
117
118
119
120
121
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
89

90
91
92

93
94
95
96
97

98
99

100
101
102

103
104

105
106
107

108
109
110
111
112
113
114
115
116
117
118
119
120
121







-
+

-
+


-
+

















-
+

-
+


-
+

-
+


-
+




-
+

-
+


-
+

-
+


-
+













}

- (size_t)count
{
	return _range.length;
}

- (id)objectAtIndex: (size_t)index
- (id)objectAtIndex: (size_t)idx
{
	if (index >= _range.length)
	if (idx >= _range.length)
		@throw [OFOutOfRangeException exception];

	return [_array objectAtIndex: index + _range.location];
	return [_array objectAtIndex: idx + _range.location];
}

- (void)getObjects: (id *)buffer
	   inRange: (of_range_t)range
{
	if (range.length > SIZE_MAX - range.location ||
	    range.location + range.length > _range.length)
		@throw [OFOutOfRangeException exception];

	range.location += _range.location;

	[_array getObjects: buffer
		   inRange: range];
}

- (size_t)indexOfObject: (id)object
{
	size_t index = [_array indexOfObject: object];
	size_t idx = [_array indexOfObject: object];

	if (index < _range.location)
	if (idx < _range.location)
		return OF_NOT_FOUND;

	index -= _range.location;
	idx -= _range.location;

	if (index >= _range.length)
	if (idx >= _range.length)
		return OF_NOT_FOUND;

	return index;
	return idx;
}

- (size_t)indexOfObjectIdenticalTo: (id)object
{
	size_t index = [_array indexOfObjectIdenticalTo: object];
	size_t idx = [_array indexOfObjectIdenticalTo: object];

	if (index < _range.location)
	if (idx < _range.location)
		return OF_NOT_FOUND;

	index -= _range.location;
	idx -= _range.location;

	if (index >= _range.length)
	if (idx >= _range.length)
		return OF_NOT_FOUND;

	return index;
	return idx;
}

- (OFArray *)objectsInRange: (of_range_t)range
{
	if (range.length > SIZE_MAX - range.location ||
	    range.location + range.length > _range.length)
		@throw [OFOutOfRangeException exception];

	range.location += _range.location;

	return [_array objectsInRange: range];
}
@end