[vlc-devel] commit: vout_window_t: privatize module pointer ( Rémi Denis-Courmont )

git version control git at videolan.org
Sat Oct 17 20:41:44 CEST 2009


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat Oct 17 20:40:55 2009 +0300| [82108a21aa3c9d9b229724d7b392f08e059dff6c] | committer: Rémi Denis-Courmont 

vout_window_t: privatize module pointer

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

 include/vlc_vout_window.h |    3 ---
 src/video_output/window.c |   19 +++++++++++++------
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/include/vlc_vout_window.h b/include/vlc_vout_window.h
index b3db081..a3615cd 100644
--- a/include/vlc_vout_window.h
+++ b/include/vlc_vout_window.h
@@ -78,9 +78,6 @@ typedef struct {
 struct vout_window_t {
     VLC_COMMON_MEMBERS
 
-    /* Module */
-    module_t *module;
-
     /* Initial state (reserved).
      * Once the open function is called, it will be set to NULL
      */
diff --git a/src/video_output/window.c b/src/video_output/window.c
index 3076401..503006b 100644
--- a/src/video_output/window.c
+++ b/src/video_output/window.c
@@ -33,13 +33,20 @@
 #include <vlc_vout_window.h>
 #include <libvlc.h>
 
+typedef struct
+{
+    vout_window_t wnd;
+    module_t *module;
+} window_t;
+
 vout_window_t *vout_window_New(vlc_object_t *obj,
                                const char *module,
                                const vout_window_cfg_t *cfg)
 {
     static char const name[] = "window";
-    vout_window_t *window = vlc_custom_create(obj, sizeof(*window),
-                                              VLC_OBJECT_GENERIC, name);
+    window_t *w = vlc_custom_create(obj, sizeof(*w), VLC_OBJECT_GENERIC, name);
+    vout_window_t *window = &w->wnd;
+
     window->cfg = cfg;
     memset(&window->handle, 0, sizeof(window->handle));
     window->control = NULL;
@@ -59,9 +66,8 @@ vout_window_t *vout_window_New(vlc_object_t *obj,
         assert(0);
     }
 
-    window->module = module_need(window, type,
-                                 module, module && *module != '\0');
-    if (!window->module) {
+    w->module = module_need(window, type, module, module && *module != '\0');
+    if (!w->module) {
         vlc_object_detach(window);
         vlc_object_release(window);
         return NULL;
@@ -74,9 +80,10 @@ void vout_window_Delete(vout_window_t *window)
     if (!window)
         return;
 
+    window_t *w = (window_t *)window;
     vlc_object_detach(window);
 
-    module_unneed(window, window->module);
+    module_unneed(window, w->module);
 
     vlc_object_release(window);
 }




More information about the vlc-devel mailing list