mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
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:
parent
50b44cdd16
commit
d68914ad64
2 changed files with 10 additions and 1 deletions
|
@ -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-25 Wim Taymans <wim@fluendo.com>
|
2005-04-25 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
|
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
|
||||||
|
|
|
@ -110,7 +110,9 @@ gst_trash_stack_pop (GstTrashStack *stack)
|
||||||
" incl %%ecx; \n\t" /* and increment */
|
" incl %%ecx; \n\t" /* and increment */
|
||||||
SMP_LOCK "cmpxchg8b %1; \n\t" /* if eax:edx == *stack, move ebx:ecx to *stack,
|
SMP_LOCK "cmpxchg8b %1; \n\t" /* if eax:edx == *stack, move ebx:ecx to *stack,
|
||||||
* else *stack is moved into eax:edx again... */
|
* 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"
|
"20: \n\t"
|
||||||
" popl %%ebx \n"
|
" popl %%ebx \n"
|
||||||
: "=a" (head)
|
: "=a" (head)
|
||||||
|
|
Loading…
Reference in a new issue