gst/gsttrashstack.h: Ooohh. a nasty one! After having a failed pop() from the stack, it's possible that the stack is ...

Original commit message from CVS:
* gst/gsttrashstack.h:
Ooohh. a nasty one! After having a failed pop() from the stack,
it's possible that the stack is empty. In that case, don't
follow the NULL pointer.
This commit is contained in:
Wim Taymans 2005-04-26 18:11:21 +00:00
parent 26d06184a3
commit 3670c2f9dc
2 changed files with 10 additions and 1 deletions

View file

@ -1,3 +1,10 @@
2005-04-26 Wim Taymans <wim@fluendo.com>
* gst/gsttrashstack.h:
Ooohh. a nasty one! After having a failed pop() from the stack,
it's possible that the stack is empty. In that case, don't
follow the NULL pointer.
2005-04-26 Benjamin Otte <in7y118@public.uni-hamburg.de>
* gst/gstelementfactory.c: (gst_element_factory_create):

View file

@ -110,7 +110,9 @@ gst_trash_stack_pop (GstTrashStack *stack)
" incl %%ecx; \n\t" /* and increment */
SMP_LOCK "cmpxchg8b %1; \n\t" /* if eax:edx == *stack, move ebx:ecx to *stack,
* else *stack is moved into eax:edx again... */
" jnz 10b; \n\t" /* ... and we retry */
" jz 20f; \n\t" /* success */
" testl %%eax, %%eax; \n\t" /* if (head == NULL) return */
" jnz 10b; \n\t" /* else we retry */
"20: \n\t"
" popl %%ebx \n"
: "=a" (head)