Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
73edaec8
Commit
73edaec8
authored
May 16, 2008
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vlc_list_children: list children _safely_
parent
456d36de
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
0 deletions
+25
-0
include/vlc_objects.h
include/vlc_objects.h
+4
-0
src/libvlccore.sym
src/libvlccore.sym
+1
-0
src/misc/objects.c
src/misc/objects.c
+20
-0
No files found.
include/vlc_objects.h
View file @
73edaec8
...
...
@@ -111,6 +111,7 @@ VLC_EXPORT( void *, __vlc_object_find_name, ( vlc_object_t *, const char *, int
VLC_EXPORT
(
void
,
__vlc_object_yield
,
(
vlc_object_t
*
)
);
VLC_EXPORT
(
void
,
__vlc_object_release
,
(
vlc_object_t
*
)
);
VLC_EXPORT
(
vlc_list_t
*
,
__vlc_list_find
,
(
vlc_object_t
*
,
int
,
int
)
);
VLC_EXPORT
(
vlc_list_t
*
,
__vlc_list_children
,
(
vlc_object_t
*
)
);
VLC_EXPORT
(
void
,
vlc_list_release
,
(
vlc_list_t
*
)
);
/* __vlc_object_dump */
...
...
@@ -145,6 +146,9 @@ VLC_EXPORT( void, __vlc_object_dump, ( vlc_object_t *p_this ) );
#define vlc_list_find(a,b,c) \
__vlc_list_find( VLC_OBJECT(a),b,c)
#define vlc_list_children(a) \
__vlc_list_children( VLC_OBJECT(a) )
#define vlc_object_dump(a) \
__vlc_object_dump( VLC_OBJECT(a))
...
...
src/libvlccore.sym
View file @
73edaec8
...
...
@@ -405,6 +405,7 @@ vlc_getnameinfo
vlc_iconv
vlc_iconv_close
vlc_iconv_open
__vlc_list_children
__vlc_list_find
vlc_list_release
vlc_lldiv
...
...
src/misc/objects.c
View file @
73edaec8
...
...
@@ -1021,6 +1021,26 @@ vlc_list_t * __vlc_list_find( vlc_object_t *p_this, int i_type, int i_mode )
return
p_list
;
}
/**
* Gets the list of children of an objects, and increment their reference
* count.
* @return a list (possibly empty) or NULL in case of error.
*/
vlc_list_t
*
__vlc_list_children
(
vlc_object_t
*
obj
)
{
vlc_list_t
*
l
;
vlc_mutex_lock
(
&
structure_lock
);
l
=
NewList
(
obj
->
i_children
);
for
(
int
i
=
0
;
i
<
l
->
i_count
;
i
++
)
{
vlc_object_yield
(
obj
->
pp_children
[
i
]
);
l
->
p_values
[
i
].
p_object
=
obj
->
pp_children
[
i
];
}
vlc_mutex_unlock
(
&
structure_lock
);
return
l
;
}
/*****************************************************************************
* DumpCommand: print the current vlc structure
*****************************************************************************
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment