Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
203ae3b9 by Claudio Cambra at 2026-06-07T07:07:28+00:00
macosx: Instantiate media tree with vlc_media_tree_New()

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -


1 changed file:

- modules/gui/macosx/library/media-source/VLCMediaSource.m


Changes:

=====================================
modules/gui/macosx/library/media-source/VLCMediaSource.m
=====================================
@@ -115,7 +115,7 @@ static const char *const remoteBrowseDescription = "Remote 
Browse";
         }
         
         _p_mediaSource->description = localDevicesDescription;
-        _p_mediaSource->tree = calloc(1, sizeof(vlc_media_tree_t));
+        _p_mediaSource->tree = vlc_media_tree_New();
         
         if (_p_mediaSource->tree == NULL) {
             free(_p_mediaSource);
@@ -159,7 +159,7 @@ static const char *const remoteBrowseDescription = "Remote 
Browse";
         }
 
         _p_mediaSource->description = myFoldersDescription;
-        _p_mediaSource->tree = calloc(1, sizeof(vlc_media_tree_t));
+        _p_mediaSource->tree = vlc_media_tree_New();
 
         if (_p_mediaSource->tree == NULL) {
             free(_p_mediaSource);
@@ -234,7 +234,7 @@ static const char *const remoteBrowseDescription = "Remote 
Browse";
         if (isFileUrl) {
             _category = SD_CAT_MYCOMPUTER;
             _p_mediaSource->description = myFoldersDescription;
-            _p_mediaSource->tree = calloc(1, sizeof(vlc_media_tree_t));
+            _p_mediaSource->tree = vlc_media_tree_New();
 
             BOOL mrlTargetIsDirectory = NO;
             const BOOL mrlTargetExists = [NSFileManager.defaultManager
@@ -264,8 +264,9 @@ static const char *const remoteBrowseDescription = "Remote 
Browse";
                                                                isFileUrl ? 
ITEM_LOCAL : ITEM_NET);
 
         if (isFileUrl) {
-            input_item_node_t * const directoryNode = 
input_item_node_Create(directoryItem);
-            _p_mediaSource->tree->root = *directoryNode;
+            // vlc_media_tree_New already initialised root with empty children;
+            // just set the root item directly.
+            _p_mediaSource->tree->root.p_item = directoryItem;
         } else {
             input_item_node_t * const directoryNode = 
input_item_node_Create(directoryItem);
             input_item_node_AppendNode(&_p_mediaSource->tree->root, 
directoryNode);
@@ -289,6 +290,10 @@ static const char *const remoteBrowseDescription = "Remote 
Browse";
         if (_p_mediaSource->description == localDevicesDescription || 
_p_mediaSource->description == myFoldersDescription) {
             _p_mediaSource->description = NULL;
 
+            if (_p_mediaSource->tree->root.p_item != NULL) {
+                input_item_Release(_p_mediaSource->tree->root.p_item);
+                _p_mediaSource->tree->root.p_item = NULL;
+            }
             vlc_media_tree_Release(_p_mediaSource->tree);
             free(_p_mediaSource);
             _p_mediaSource = NULL;



View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/commit/203ae3b908c32ee9e357c27bf5f2998e8dc55629

-- 
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/commit/203ae3b908c32ee9e357c27bf5f2998e8dc55629
You're receiving this email because of your account on code.videolan.org. 
Manage all notifications: https://code.videolan.org/-/profile/notifications | 
Help: https://code.videolan.org/help


_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to