@@ -169,6 +169,7 @@ void ReliablePacketBuffer::print()
169
169
index ++;
170
170
}
171
171
}
172
+
172
173
bool ReliablePacketBuffer::empty ()
173
174
{
174
175
MutexAutoLock listlock (m_list_mutex);
@@ -177,7 +178,8 @@ bool ReliablePacketBuffer::empty()
177
178
178
179
u32 ReliablePacketBuffer::size ()
179
180
{
180
- return m_list_size;
181
+ MutexAutoLock listlock (m_list_mutex);
182
+ return m_list.size ();
181
183
}
182
184
183
185
bool ReliablePacketBuffer::containsPacket (u16 seqnum)
@@ -198,17 +200,19 @@ RPBSearchResult ReliablePacketBuffer::findPacket(u16 seqnum)
198
200
}
199
201
return i;
200
202
}
203
+
201
204
RPBSearchResult ReliablePacketBuffer::notFound ()
202
205
{
203
206
return m_list.end ();
204
207
}
208
+
205
209
bool ReliablePacketBuffer::getFirstSeqnum (u16& result)
206
210
{
207
211
MutexAutoLock listlock (m_list_mutex);
208
212
if (m_list.empty ())
209
213
return false ;
210
- BufferedPacket p = *m_list.begin ();
211
- result = readU16 (&p.data [BASE_HEADER_SIZE+ 1 ]);
214
+ const BufferedPacket & p = *m_list.begin ();
215
+ result = readU16 (&p.data [BASE_HEADER_SIZE + 1 ]);
212
216
return true ;
213
217
}
214
218
@@ -219,16 +223,16 @@ BufferedPacket ReliablePacketBuffer::popFirst()
219
223
throw NotFoundException (" Buffer is empty" );
220
224
BufferedPacket p = *m_list.begin ();
221
225
m_list.erase (m_list.begin ());
222
- --m_list_size;
223
226
224
- if (m_list_size == 0 ) {
227
+ if (m_list. empty () ) {
225
228
m_oldest_non_answered_ack = 0 ;
226
229
} else {
227
230
m_oldest_non_answered_ack =
228
- readU16 (&(* m_list.begin ()). data [BASE_HEADER_SIZE+ 1 ]);
231
+ readU16 (&m_list.begin ()-> data [BASE_HEADER_SIZE + 1 ]);
229
232
}
230
233
return p;
231
234
}
235
+
232
236
BufferedPacket ReliablePacketBuffer::popSeqnum (u16 seqnum)
233
237
{
234
238
MutexAutoLock listlock (m_list_mutex);
@@ -249,15 +253,17 @@ BufferedPacket ReliablePacketBuffer::popSeqnum(u16 seqnum)
249
253
}
250
254
251
255
m_list.erase (r);
252
- --m_list_size;
253
256
254
- if (m_list_size == 0 )
255
- { m_oldest_non_answered_ack = 0 ; }
256
- else
257
- { m_oldest_non_answered_ack = readU16 (&(*m_list.begin ()).data [BASE_HEADER_SIZE+1 ]); }
257
+ if (m_list.empty ()) {
258
+ m_oldest_non_answered_ack = 0 ;
259
+ } else {
260
+ m_oldest_non_answered_ack =
261
+ readU16 (&m_list.begin ()->data [BASE_HEADER_SIZE + 1 ]);
262
+ }
258
263
return p;
259
264
}
260
- void ReliablePacketBuffer::insert (BufferedPacket &p,u16 next_expected)
265
+
266
+ void ReliablePacketBuffer::insert (BufferedPacket &p, u16 next_expected)
261
267
{
262
268
MutexAutoLock listlock (m_list_mutex);
263
269
if (p.data .getSize () < BASE_HEADER_SIZE + 3 ) {
@@ -284,8 +290,7 @@ void ReliablePacketBuffer::insert(BufferedPacket &p,u16 next_expected)
284
290
return ;
285
291
}
286
292
287
- ++m_list_size;
288
- sanity_check (m_list_size <= SEQNUM_MAX+1 ); // FIXME: Handle the error?
293
+ sanity_check (m_list.size () <= SEQNUM_MAX); // FIXME: Handle the error?
289
294
290
295
// Find the right place for the packet and insert it there
291
296
// If list is empty, just add it
@@ -324,8 +329,6 @@ void ReliablePacketBuffer::insert(BufferedPacket &p,u16 next_expected)
324
329
if (s == seqnum) {
325
330
/* nothing to do this seems to be a resent packet */
326
331
/* for paranoia reason data should be compared */
327
- --m_list_size;
328
-
329
332
if (
330
333
(readU16 (&(i->data [BASE_HEADER_SIZE+1 ])) != seqnum) ||
331
334
(i->data .getSize () != p.data .getSize ()) ||
@@ -348,8 +351,7 @@ void ReliablePacketBuffer::insert(BufferedPacket &p,u16 next_expected)
348
351
/* insert or push back */
349
352
else if (i != m_list.end ()) {
350
353
m_list.insert (i, p);
351
- }
352
- else {
354
+ } else {
353
355
m_list.push_back (p);
354
356
}
355
357
0 commit comments