url: add ffurl_closep() which also sets the context pointer to NULL
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 1 Jun 2012 12:47:30 +0000 (14:47 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 1 Jun 2012 12:47:30 +0000 (14:47 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/avio.c
libavformat/url.h

index 5a1c79e..8b7e495 100644 (file)
@@ -315,8 +315,9 @@ int64_t ffurl_seek(URLContext *h, int64_t pos, int whence)
     return ret;
 }
 
-int ffurl_close(URLContext *h)
+int ffurl_closep(URLContext **hh)
 {
+    URLContext *h= *hh;
     int ret = 0;
     if (!h) return 0; /* can happen when ffurl_open fails */
 
@@ -331,10 +332,16 @@ int ffurl_close(URLContext *h)
             av_opt_free(h->priv_data);
         av_freep(&h->priv_data);
     }
-    av_free(h);
+    av_freep(hh);
     return ret;
 }
 
+int ffurl_close(URLContext *h)
+{
+    return ffurl_closep(&h);
+}
+
+
 int avio_check(const char *url, int flags)
 {
     URLContext *h;
index 6ad754e..82f42e8 100644 (file)
@@ -179,11 +179,12 @@ int64_t ffurl_seek(URLContext *h, int64_t pos, int whence);
 
 /**
  * Close the resource accessed by the URLContext h, and free the
- * memory used by it.
+ * memory used by it. Also set the URLContext pointer to NULL.
  *
  * @return a negative value if an error condition occurred, 0
  * otherwise
  */
+int ffurl_closep(URLContext **h);
 int ffurl_close(URLContext *h);
 
 /**