Changeset 6afadbe25bc66e43d70cdd098ee35562fb37a7ae

Show
Ignore:
Timestamp:
09/12/07 16:27:08 (1 year ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1189607228 +0000
git-parent:

[3a7e1af15db939d5a6edbc2c8a31f4614a662d2a]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1189607228 +0000
Message:

Remove extra va_end; code factorization

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/stream_output/sdp.c

    r7d4a9c9 r6afadbe  
    162162{ 
    163163    size_t oldlen = strlen (*sdp); 
    164     va_list aq; 
    165     va_copy ( aq, ap ); 
    166     size_t addlen = 
    167         sizeof ("a=:\r\n") + strlen (name) + vsnprintf (NULL, 0, fmt, ap); 
     164    size_t addlen = sizeof ("a=\r\n") + strlen (name); 
     165 
     166    if (fmt != NULL) 
     167    { 
     168        va_list aq; 
     169 
     170        va_copy (aq, ap); 
     171        addlen += 1 + vsnprintf (NULL, 0, fmt, aq); 
     172        va_end (aq); 
     173    } 
     174 
    168175    char *ret = realloc (*sdp, oldlen + addlen); 
    169  
    170176    if (ret == NULL) 
    171177        return NULL; 
    172178 
    173     oldlen += sprintf (ret + oldlen, "a=%s:", name); 
    174     oldlen += vsprintf (ret + oldlen, fmt, aq); 
    175     va_end (aq); 
     179    oldlen += sprintf (ret + oldlen, "a=%s", name); 
     180    if (fmt != NULL) 
     181    { 
     182        ret[oldlen++] = ':'; 
     183        oldlen += vsprintf (ret + oldlen, fmt, ap); 
     184    } 
     185 
    176186    strcpy (ret + oldlen, "\r\n"); 
    177187    return *sdp = ret; 
     
    182192{ 
    183193    char *ret; 
    184  
    185     if (fmt != NULL) 
    186     { 
    187         va_list ap; 
    188  
    189         va_start (ap, fmt); 
    190         ret = vsdp_AddAttribute (sdp, name, fmt, ap); 
    191         va_end (ap); 
    192     } 
    193     else 
    194     { 
    195         size_t oldlen = strlen (*sdp); 
    196         ret = realloc (*sdp, oldlen + strlen (name) + sizeof ("a=\r\n")); 
    197         if (ret == NULL) 
    198             return NULL; 
    199  
    200         sprintf (ret + oldlen, "a=%s\r\n", name); 
    201     } 
     194    va_list ap; 
     195 
     196    va_start (ap, fmt); 
     197    ret = vsdp_AddAttribute (sdp, name, fmt, ap); 
     198    va_end (ap); 
     199 
    202200    return ret; 
    203201}