[vlc-commits] chromecast: only lock once when checking the current app

Steve Lhomme git at videolan.org
Wed Dec 23 20:28:26 CET 2015


vlc | branch: master | Steve Lhomme <robUx4 at videolabs.io> | Wed Dec 23 12:58:43 2015 +0100| [e9dea57b5efd8e28053093a97db6453300cf4df1] | committer: Jean-Baptiste Kempf

chromecast: only lock once when checking the current app

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e9dea57b5efd8e28053093a97db6453300cf4df1
---

 modules/stream_out/chromecast/chromecast_ctrl.cpp |   15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/modules/stream_out/chromecast/chromecast_ctrl.cpp b/modules/stream_out/chromecast/chromecast_ctrl.cpp
index b2d5df5..fb14348 100644
--- a/modules/stream_out/chromecast/chromecast_ctrl.cpp
+++ b/modules/stream_out/chromecast/chromecast_ctrl.cpp
@@ -276,21 +276,23 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
         {
             json_value applications = (*p_data)["status"]["applications"];
             const json_value *p_app = NULL;
+
+            vlc_mutex_locker locker(&lock);
             for (unsigned i = 0; i < applications.u.array.length; ++i)
             {
                 std::string appId(applications[i]["appId"]);
                 if (appId == APP_ID)
                 {
-                    p_app = &applications[i];
-                    vlc_mutex_lock(&lock);
-                    if (appTransportId.empty())
-                        appTransportId = std::string(applications[i]["transportId"]);
-                    vlc_mutex_unlock(&lock);
+                    const char *pz_transportId = applications[i]["transportId"];
+                    if (pz_transportId != NULL)
+                    {
+                        appTransportId = std::string(pz_transportId);
+                        p_app = &applications[i];
+                    }
                     break;
                 }
             }
 
-            vlc_mutex_lock(&lock);
             if ( p_app )
             {
                 if (!appTransportId.empty()
@@ -318,7 +320,6 @@ void intf_sys_t::processMessage(const castchannel::CastMessage &msg)
                 }
 
             }
-            vlc_mutex_unlock(&lock);
         }
         else
         {



More information about the vlc-commits mailing list