diff options
Diffstat (limited to 'libavfilter/graphparser.c')
-rw-r--r-- | libavfilter/graphparser.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c index 6a1904f3ec..5ad8522daa 100644 --- a/libavfilter/graphparser.c +++ b/libavfilter/graphparser.c @@ -179,26 +179,15 @@ static void free_inout(AVFilterInOut *head) static AVFilterInOut *extract_inout(const char *label, AVFilterInOut **links) { AVFilterInOut *ret; - AVFilterInOut *p; - - if(!links || !*links) - return NULL; - if(!strcmp((*links)->name, label)) { - ret = *links; - *links = (*links)->next; - return ret; - } - - /* First check if the label is not in the openLinks list */ - for(p = *links; p->next && strcmp(p->next->name, label); p = p->next); - if(!p->next) - return NULL; + while(*links && strcmp((*links)->name, label)) + links= &((*links)->next); - ret = p->next; + ret= *links; - p->next = p->next->next; + if(ret) + *links= ret->next; return ret; } |