From: Miguel F. <mig...@us...> - 2004-12-08 18:18:36
|
Update of /cvsroot/xine/xine-lib/src/xine-engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13141 Modified Files: video_overlay.c video_overlay.h Log Message: fix race reported by Reinhard Index: video_overlay.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/xine-engine/video_overlay.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- video_overlay.c 24 Nov 2004 15:45:58 -0000 1.36 +++ video_overlay.c 8 Dec 2004 18:18:23 -0000 1.37 @@ -215,13 +215,13 @@ } pthread_mutex_unlock (&this->events_mutex); + for( i = 0; i < MAX_SHOWING; i++ ) + this->showing[i].handle = -1; + for (i=0; i < MAX_OBJECTS; i++) { internal_video_overlay_free_handle(this, i); } - for( i = 0; i < MAX_SHOWING; i++ ) - this->showing[i].handle = -1; - this->showing_changed = 0; } @@ -362,6 +362,7 @@ /* this->objects[handle].overlay is about to be * overwritten by this event data. make sure we free it if needed. */ + remove_showing_handle(this,handle); internal_video_overlay_free_handle(this, handle); this->objects[handle].handle = handle; @@ -559,7 +560,7 @@ free (this->events[i].event); } } - + for (i=0; i < MAX_OBJECTS; i++) internal_video_overlay_free_handle(this, i); Index: video_overlay.h =================================================================== RCS file: /cvsroot/xine/xine-lib/src/xine-engine/video_overlay.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- video_overlay.h 9 Dec 2003 00:02:38 -0000 1.18 +++ video_overlay.h 8 Dec 2004 18:18:24 -0000 1.19 @@ -38,7 +38,7 @@ #define MAX_OBJECTS 50 #define MAX_EVENTS 50 -#define MAX_SHOWING 5 +#define MAX_SHOWING 16 #define OVERLAY_EVENT_NULL 0 #define OVERLAY_EVENT_SHOW 1 |