]> git.sesse.net Git - vlc/blobdiff - src/misc/objects.c
Trivial WinCE fix
[vlc] / src / misc / objects.c
index 1dfbffb28a3a6de8b6a9094730673c3eaa96515e..5d445a70d71764ca046b845bf63d36c852d5a92f 100644 (file)
@@ -356,6 +356,9 @@ int vlc_object_waitpipe( vlc_object_t *obj )
         /* This can only ever happen if someone killed us without locking: */
         assert (internals->pipes[1] == -1);
 
+        /* pipe() is not a cancellation point, but write() is and eventfd() is
+         * unspecified (not in POSIX). */
+        int canc = vlc_savecancel ();
 #if defined (HAVE_SYS_EVENTFD_H)
         internals->pipes[0] = internals->pipes[1] = eventfd (0, EFD_CLOEXEC);
         if (internals->pipes[0] == -1)
@@ -370,6 +373,7 @@ int vlc_object_waitpipe( vlc_object_t *obj )
             msg_Dbg (obj, "waitpipe: object already dying");
             write (internals->pipes[1], &(uint64_t){ 1 }, sizeof (uint64_t));
         }
+        vlc_restorecancel (canc);
     }
     vlc_mutex_unlock (&pipe_lock);
     return internals->pipes[0];
@@ -751,6 +755,7 @@ static void DumpVariable (const void *data, const VISIT which, const int depth)
         MYCASE( VARIABLE, "variable" );
         MYCASE( FLOAT, "float" );
         MYCASE( TIME, "time" );
+        MYCASE( COORDS, "coords" );
         MYCASE( ADDRESS, "address" );
         MYCASE( MUTEX, "mutex" );
         MYCASE( LIST, "list" );
@@ -786,6 +791,10 @@ static void DumpVariable (const void *data, const VISIT which, const int depth)
         case VLC_VAR_TIME:
             printf( ": %"PRIi64, (int64_t)p_var->val.i_time );
             break;
+        case VLC_VAR_COORDS:
+            printf( ": %"PRId32"x%"PRId32,
+                    p_var->val.coords.x, p_var->val.coords.y );
+            break;
         case VLC_VAR_ADDRESS:
             printf( ": %p", p_var->val.p_address );
             break;