Browse Source

Fixed buffered amount computation

Paul-Louis Ageneau 5 years ago
parent
commit
15e986ebfe
1 changed files with 4 additions and 2 deletions
  1. 4 2
      src/sctptransport.cpp

+ 4 - 2
src/sctptransport.cpp

@@ -381,10 +381,12 @@ bool SctpTransport::trySendMessage(message_ptr message) {
 void SctpTransport::updateBufferedAmount(uint16_t streamId, long delta) {
 	// Requires mSendMutex to be locked
 	auto it = mBufferedAmount.insert(std::make_pair(streamId, 0)).first;
-	size_t amount = it->second;
-	amount = size_t(std::max(long(amount) + delta, long(0)));
+	size_t amount = size_t(std::max(long(it->second) + delta, long(0)));
 	if (amount == 0)
 		mBufferedAmount.erase(it);
+	else
+		it->second = amount;
+
 	mBufferedAmountCallback(streamId, amount);
 }