vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Jun 7 23:03:48 2017 +0300| [368e104a9f62e138cfa004ddc9b676b554605e51] | committer: Rémi Denis-Courmont
http: use container_of() > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=368e104a9f62e138cfa004ddc9b676b554605e51 --- modules/access/http/chunked.c | 8 ++++---- modules/access/http/h1conn.c | 8 +++----- modules/access/http/h2conn.c | 17 ++++++++--------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/modules/access/http/chunked.c b/modules/access/http/chunked.c index ca20e632cf..54652f3f89 100644 --- a/modules/access/http/chunked.c +++ b/modules/access/http/chunked.c @@ -46,8 +46,6 @@ struct vlc_chunked_stream bool error; }; -static_assert(offsetof(struct vlc_chunked_stream, stream) == 0, "Cast error"); - static void *vlc_chunked_fatal(struct vlc_chunked_stream *s) { s->error = true; @@ -64,7 +62,8 @@ static struct vlc_http_msg *vlc_chunked_wait(struct vlc_http_stream *stream) static block_t *vlc_chunked_read(struct vlc_http_stream *stream) { - struct vlc_chunked_stream *s = (struct vlc_chunked_stream *)stream; + struct vlc_chunked_stream *s = + container_of(stream, struct vlc_chunked_stream, stream); block_t *block = NULL; if (s->eof) @@ -134,7 +133,8 @@ static block_t *vlc_chunked_read(struct vlc_http_stream *stream) static void vlc_chunked_close(struct vlc_http_stream *stream, bool abort) { - struct vlc_chunked_stream *s = (struct vlc_chunked_stream *)stream; + struct vlc_chunked_stream *s = + container_of(stream, struct vlc_chunked_stream, stream); if (!s->eof) /* Abort connection if stream is closed before end */ vlc_chunked_fatal(s); diff --git a/modules/access/http/h1conn.c b/modules/access/http/h1conn.c index 963715f358..2fdd26614e 100644 --- a/modules/access/http/h1conn.c +++ b/modules/access/http/h1conn.c @@ -135,17 +135,15 @@ static void *vlc_h1_stream_fatal(struct vlc_h1_conn *conn) return NULL; } -static_assert(offsetof(struct vlc_h1_conn, conn) == 0, "Cast error"); - static struct vlc_h1_conn *vlc_h1_stream_conn(struct vlc_http_stream *stream) { - return (void *)(((char *)stream) - offsetof(struct vlc_h1_conn, stream)); + return container_of(stream, struct vlc_h1_conn, stream); } static struct vlc_http_stream *vlc_h1_stream_open(struct vlc_http_conn *c, const struct vlc_http_msg *req) { - struct vlc_h1_conn *conn = (struct vlc_h1_conn *)c; + struct vlc_h1_conn *conn = container_of(c, struct vlc_h1_conn, conn); size_t len; ssize_t val; @@ -307,7 +305,7 @@ static void vlc_h1_conn_destroy(struct vlc_h1_conn *conn) static void vlc_h1_conn_release(struct vlc_http_conn *c) { - struct vlc_h1_conn *conn = (struct vlc_h1_conn *)c; + struct vlc_h1_conn *conn = container_of(c, struct vlc_h1_conn, conn); assert(!conn->released); conn->released = true; diff --git a/modules/access/http/h2conn.c b/modules/access/http/h2conn.c index f7e7b88e80..fb66b8ab24 100644 --- a/modules/access/http/h2conn.c +++ b/modules/access/http/h2conn.c @@ -60,8 +60,6 @@ struct vlc_h2_conn vlc_thread_t thread; /**< Receive thread */ }; -static_assert(offsetof(struct vlc_h2_conn, conn) == 0, "Cast error"); - static void vlc_h2_conn_destroy(struct vlc_h2_conn *conn); /** HTTP/2 stream */ @@ -237,11 +235,10 @@ static int vlc_h2_stream_unlock(struct vlc_h2_stream *s) return vlc_interrupt_unregister(); } -static_assert(offsetof(struct vlc_h2_stream, stream) == 0, "Cast error"); - static struct vlc_http_msg *vlc_h2_stream_wait(struct vlc_http_stream *stream) { - struct vlc_h2_stream *s = (struct vlc_h2_stream *)stream; + struct vlc_h2_stream *s = + container_of(stream, struct vlc_h2_stream, stream); struct vlc_h2_conn *conn = s->conn; struct vlc_http_msg *m; @@ -272,7 +269,8 @@ static struct vlc_http_msg *vlc_h2_stream_wait(struct vlc_http_stream *stream) */ static block_t *vlc_h2_stream_read(struct vlc_http_stream *stream) { - struct vlc_h2_stream *s = (struct vlc_h2_stream *)stream; + struct vlc_h2_stream *s = + container_of(stream, struct vlc_h2_stream, stream); struct vlc_h2_conn *conn = s->conn; struct vlc_h2_frame *f; @@ -339,7 +337,8 @@ static block_t *vlc_h2_stream_read(struct vlc_http_stream *stream) */ static void vlc_h2_stream_close(struct vlc_http_stream *stream, bool aborted) { - struct vlc_h2_stream *s = (struct vlc_h2_stream *)stream; + struct vlc_h2_stream *s = + container_of(stream, struct vlc_h2_stream, stream); struct vlc_h2_conn *conn = s->conn; bool destroy = false; uint_fast32_t code = VLC_H2_NO_ERROR; @@ -401,7 +400,7 @@ static const struct vlc_http_stream_cbs vlc_h2_stream_callbacks = static struct vlc_http_stream *vlc_h2_stream_open(struct vlc_http_conn *c, const struct vlc_http_msg *msg) { - struct vlc_h2_conn *conn = (struct vlc_h2_conn *)c; + struct vlc_h2_conn *conn = container_of(c, struct vlc_h2_conn, conn); struct vlc_h2_stream *s = malloc(sizeof (*s)); if (unlikely(s == NULL)) return NULL; @@ -697,7 +696,7 @@ static void vlc_h2_conn_destroy(struct vlc_h2_conn *conn) static void vlc_h2_conn_release(struct vlc_http_conn *c) { - struct vlc_h2_conn *conn = (struct vlc_h2_conn *)c; + struct vlc_h2_conn *conn = container_of(c, struct vlc_h2_conn, conn); bool destroy; vlc_mutex_lock(&conn->lock); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
