115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
OFString *ret;
/* Look if there's a line or \0 in our cache */
if (cache != NULL) {
for (i = 0; i < cache_len; i++) {
if (OF_UNLIKELY(cache[i] == '\n' ||
cache[i] == '\0')) {
ret = [OFString stringWithCString: cache
encoding: encoding
length: i];
tmp = [self allocMemoryWithSize: cache_len -
i - 1];
memcpy(tmp, cache + i + 1, cache_len - i - 1);
[self freeMemory: cache];
cache = tmp;
|
>
>
>
>
>
|
|
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
OFString *ret;
/* Look if there's a line or \0 in our cache */
if (cache != NULL) {
for (i = 0; i < cache_len; i++) {
if (OF_UNLIKELY(cache[i] == '\n' ||
cache[i] == '\0')) {
ret_len = i;
if (i > 0 && cache[i - 1] == '\r')
ret_len--;
ret = [OFString stringWithCString: cache
encoding: encoding
length: ret_len];
tmp = [self allocMemoryWithSize: cache_len -
i - 1];
memcpy(tmp, cache + i + 1, cache_len - i - 1);
[self freeMemory: cache];
cache = tmp;
|
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
tmp = [self allocMemoryWithSize: pagesize];
@try {
for (;;) {
if ([self atEndOfStreamWithoutCache]) {
if (cache == NULL)
return nil;
ret = [OFString stringWithCString: cache
encoding: encoding
length: cache_len];
[self freeMemory: cache];
cache = NULL;
cache_len = 0;
return ret;
}
|
>
>
>
>
>
|
|
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
tmp = [self allocMemoryWithSize: pagesize];
@try {
for (;;) {
if ([self atEndOfStreamWithoutCache]) {
if (cache == NULL)
return nil;
ret_len = cache_len;
if (ret_len > 0 && cache[ret_len - 1] == '\r')
ret_len--;
ret = [OFString stringWithCString: cache
encoding: encoding
length: ret_len];
[self freeMemory: cache];
cache = NULL;
cache_len = 0;
return ret;
}
|
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
ret_len = cache_len + i;
ret_c = [self
allocMemoryWithSize: ret_len];
if (cache != NULL)
memcpy(ret_c, cache, cache_len);
memcpy(ret_c + cache_len, tmp, i);
@try {
ret = [OFString
stringWithCString: ret_c
encoding: encoding
length: ret_len];
} @finally {
|
>
>
>
>
|
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
ret_len = cache_len + i;
ret_c = [self
allocMemoryWithSize: ret_len];
if (cache != NULL)
memcpy(ret_c, cache, cache_len);
memcpy(ret_c + cache_len, tmp, i);
if (ret_len > 0 &&
ret_c[ret_len - 1] == '\r')
ret_len--;
@try {
ret = [OFString
stringWithCString: ret_c
encoding: encoding
length: ret_len];
} @finally {
|