#define PL_UNLOCK vlc_object_unlock( p_playlist );
#define pl_Get( a ) a->p_libvlc->p_playlist
+
+VLC_EXPORT( playlist_t *, __pl_Yield, ( vlc_object_t * ) );
#define pl_Yield( a ) __pl_Yield( VLC_OBJECT(a) )
-static inline playlist_t *__pl_Yield( vlc_object_t *p_this )
-{
- assert( p_this->p_libvlc->p_playlist );
- vlc_object_yield( p_this->p_libvlc->p_playlist );
- return p_this->p_libvlc->p_playlist;
-}
-#define pl_Release(a) vlc_object_release( a->p_libvlc->p_playlist );
+
+VLC_EXPORT( void, __pl_Release, ( vlc_object_t * ) );
+#define pl_Release(a) __pl_Release( VLC_OBJECT(a) );
/* Playlist control */
#define playlist_Play(p) playlist_Control(p,PLAYLIST_PLAY, VLC_FALSE )
* Playlist control
*****************************************************************************/
-int playlist_Control( playlist_t * p_playlist, int i_query, vlc_bool_t b_locked, ... )
+playlist_t *__pl_Yield( vlc_object_t *p_this )
+{
+ playlist_t *pl = p_this->p_libvlc->p_playlist;
+ assert( pl != NULL );
+ vlc_object_yield( pl );
+ return pl;
+}
+
+void __pl_Release( vlc_object_t *p_this )
+{
+ playlist_t *pl = p_this->p_libvlc->p_playlist;
+ assert( pl != NULL );
+ vlc_object_release( pl );
+}
+
+int playlist_Control( playlist_t * p_playlist, int i_query,
+ vlc_bool_t b_locked, ... )
{
va_list args;
int i_result;