File tree Expand file tree Collapse file tree 2 files changed +17
-7
lines changed Expand file tree Collapse file tree 2 files changed +17
-7
lines changed Original file line number Diff line number Diff line change @@ -615,16 +615,21 @@ struct aws_http_message *aws_http2_message_new_response(struct aws_allocator *al
615615/**
616616 * Acquire a hold on the object, preventing it from being deleted until
617617 * aws_http_message_release() is called by all those with a hold on it.
618+ *
619+ * This function returns the passed in message (possibly NULL) so that acquire-and-assign can be done with a single
620+ * statement.
618621 */
619622AWS_HTTP_API
620- void aws_http_message_acquire (struct aws_http_message * message );
623+ struct aws_http_message * aws_http_message_acquire (struct aws_http_message * message );
621624
622625/**
623626 * Release a hold on the object.
624627 * The object is deleted when all holds on it are released.
628+ *
629+ * This function always returns NULL so that release-and-assign-NULL can be done with a single statement.
625630 */
626631AWS_HTTP_API
627- void aws_http_message_release (struct aws_http_message * message );
632+ struct aws_http_message * aws_http_message_release (struct aws_http_message * message );
628633
629634/**
630635 * Deprecated. This is equivalent to aws_http_message_release().
Original file line number Diff line number Diff line change @@ -537,11 +537,11 @@ void aws_http_message_destroy(struct aws_http_message *message) {
537537 aws_http_message_release (message );
538538}
539539
540- void aws_http_message_release (struct aws_http_message * message ) {
540+ struct aws_http_message * aws_http_message_release (struct aws_http_message * message ) {
541541 /* Note that release() may also be used by new() functions to clean up if something goes wrong */
542542 AWS_PRECONDITION (!message || message -> allocator );
543543 if (!message ) {
544- return ;
544+ return NULL ;
545545 }
546546
547547 size_t prev_refcount = aws_atomic_fetch_sub (& message -> refcount , 1 );
@@ -557,11 +557,16 @@ void aws_http_message_release(struct aws_http_message *message) {
557557 } else {
558558 AWS_ASSERT (prev_refcount != 0 );
559559 }
560+
561+ return NULL ;
560562}
561563
562- void aws_http_message_acquire (struct aws_http_message * message ) {
563- AWS_PRECONDITION (message );
564- aws_atomic_fetch_add (& message -> refcount , 1 );
564+ struct aws_http_message * aws_http_message_acquire (struct aws_http_message * message ) {
565+ if (message != NULL ) {
566+ aws_atomic_fetch_add (& message -> refcount , 1 );
567+ }
568+
569+ return message ;
565570}
566571
567572bool aws_http_message_is_request (const struct aws_http_message * message ) {
You can’t perform that action at this time.
0 commit comments