Browse Source

more memory leaks fixes

Philippe G 3 years ago
parent
commit
685ac92f6e

+ 1 - 0
components/spotify/cspot/src/MercuryResponse.cpp

@@ -34,5 +34,6 @@ void MercuryResponse::parseResponse(std::vector<uint8_t> &data)
         pos += 2 + partSize;
     }
 
+    pb_release(Header_fields, this->mercuryHeader);
     pbDecode(this->mercuryHeader, Header_fields, headerBytes);
 }

+ 1 - 1
components/spotify/cspot/src/PlayerState.cpp

@@ -136,7 +136,7 @@ void PlayerState::updatePositionMs(uint32_t position)
 void PlayerState::updateTracks()
 {
     CSPOT_LOG(info, "---- Track count %d", remoteFrame.state.track_count);
-    // innerFrame.state->context_uri = remoteFrame.state->context_uri == nullptr ? nullptr : strdup(otherFrame->state->context_uri);
+    innerFrame.state.context_uri = remoteFrame.state.context_uri == nullptr ? nullptr : strdup(remoteFrame.state.context_uri);
     std::copy(std::begin(remoteFrame.state.track), std::end(remoteFrame.state.track), std::begin(innerFrame.state.track));
     innerFrame.state.track_count = remoteFrame.state.track_count;
     innerFrame.state.has_playing_track_index = true;

+ 2 - 0
components/spotify/cspot/src/Session.cpp

@@ -95,6 +95,8 @@ void Session::processAPHelloResponse(std::vector<uint8_t> &helloPacket)
     CSPOT_LOG(debug, "Received AP hello response");
     // Decode the response
     auto skipSize = std::vector<uint8_t>(data.begin() + 4, data.end());
+
+    pb_release(APResponseMessage_fields, apResponse);
     pbDecode(apResponse, APResponseMessage_fields, skipSize);
 
     auto diffieKey = std::vector<uint8_t>(apResponse.challenge.login_crypto_challenge.diffie_hellman.gs, apResponse.challenge.login_crypto_challenge.diffie_hellman.gs + 96);

+ 1 - 0
components/spotify/cspot/src/SpircController.cpp

@@ -103,6 +103,7 @@ void SpircController::prevSong() {
 }
 
 void SpircController::handleFrame(std::vector<uint8_t> &data) {
+    pb_release(Frame_fields, state->remoteFrame);
     pbDecode(state->remoteFrame, Frame_fields, data);
 
     switch (state->remoteFrame.typ) {

+ 2 - 0
components/spotify/cspot/src/SpotifyTrack.cpp

@@ -75,6 +75,7 @@ void SpotifyTrack::trackInformationCallback(std::unique_ptr<MercuryResponse> res
         return;
     CSPOT_ASSERT(response->parts.size() > 0, "response->parts.size() must be greater than 0");
 
+    pb_release(Track_fields, trackInfo);
     pbDecode(trackInfo, Track_fields, response->parts[0]);
 
     CSPOT_LOG(info, "Track name: %s", trackInfo.name);
@@ -126,6 +127,7 @@ void SpotifyTrack::episodeInformationCallback(std::unique_ptr<MercuryResponse> r
         return;
     CSPOT_LOG(debug, "Got to episode");
     CSPOT_ASSERT(response->parts.size() > 0, "response->parts.size() must be greater than 0");
+    pb_release(Episode_fields, episodeInfo);
     pbDecode(episodeInfo, Episode_fields, response->parts[0]);
 
     CSPOT_LOG(info, "--- Episode name: %s", episodeInfo.name);

+ 2 - 2
components/spotify/cspot/src/TrackReference.cpp

@@ -19,8 +19,8 @@ TrackReference::TrackReference(TrackRef *ref)
 
 TrackReference::~TrackReference()
 {
-	pb_release(TrackRef_fields, ref);
-}
+    pb_release(TrackRef_fields, ref);
+ }
 
 std::vector<uint8_t> TrackReference::base62Decode(std::string uri)
 {