diff --git a/components/spotify/cspot/src/MercuryResponse.cpp b/components/spotify/cspot/src/MercuryResponse.cpp index 1bda5d4e..e8e68e6d 100644 --- a/components/spotify/cspot/src/MercuryResponse.cpp +++ b/components/spotify/cspot/src/MercuryResponse.cpp @@ -34,5 +34,6 @@ void MercuryResponse::parseResponse(std::vector &data) pos += 2 + partSize; } + pb_release(Header_fields, this->mercuryHeader); pbDecode(this->mercuryHeader, Header_fields, headerBytes); } \ No newline at end of file diff --git a/components/spotify/cspot/src/PlayerState.cpp b/components/spotify/cspot/src/PlayerState.cpp index 00bc889e..f503b5a0 100644 --- a/components/spotify/cspot/src/PlayerState.cpp +++ b/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; diff --git a/components/spotify/cspot/src/Session.cpp b/components/spotify/cspot/src/Session.cpp index 33879c7a..ee4975fc 100644 --- a/components/spotify/cspot/src/Session.cpp +++ b/components/spotify/cspot/src/Session.cpp @@ -95,6 +95,8 @@ void Session::processAPHelloResponse(std::vector &helloPacket) CSPOT_LOG(debug, "Received AP hello response"); // Decode the response auto skipSize = std::vector(data.begin() + 4, data.end()); + + pb_release(APResponseMessage_fields, apResponse); pbDecode(apResponse, APResponseMessage_fields, skipSize); auto diffieKey = std::vector(apResponse.challenge.login_crypto_challenge.diffie_hellman.gs, apResponse.challenge.login_crypto_challenge.diffie_hellman.gs + 96); diff --git a/components/spotify/cspot/src/SpircController.cpp b/components/spotify/cspot/src/SpircController.cpp index 4f7e0264..d2fd92fe 100644 --- a/components/spotify/cspot/src/SpircController.cpp +++ b/components/spotify/cspot/src/SpircController.cpp @@ -103,6 +103,7 @@ void SpircController::prevSong() { } void SpircController::handleFrame(std::vector &data) { + pb_release(Frame_fields, state->remoteFrame); pbDecode(state->remoteFrame, Frame_fields, data); switch (state->remoteFrame.typ) { diff --git a/components/spotify/cspot/src/SpotifyTrack.cpp b/components/spotify/cspot/src/SpotifyTrack.cpp index 381ff256..023c0470 100644 --- a/components/spotify/cspot/src/SpotifyTrack.cpp +++ b/components/spotify/cspot/src/SpotifyTrack.cpp @@ -75,6 +75,7 @@ void SpotifyTrack::trackInformationCallback(std::unique_ptr 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 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); diff --git a/components/spotify/cspot/src/TrackReference.cpp b/components/spotify/cspot/src/TrackReference.cpp index 72eb28e3..a98fc969 100644 --- a/components/spotify/cspot/src/TrackReference.cpp +++ b/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 TrackReference::base62Decode(std::string uri) {