Permalink
Browse files

deps: cherry-pick eb306f463e from nghttp2 upstream

Original commit message:

  lib: add nghttp2_rcbuf_is_static()

  Add a `nghttp2_rcbuf_is_static()` method to tell whether a rcbuf
  is statically allocated.

  This can be useful for language bindings that wish to avoid
  creating duplicate strings for these buffers; concretely, I am
  planning to use this in the Node HTTP/2 module that is being
  introduced.

Ref: nghttp2/nghttp2@eb306f4
PR-URL: #14808
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
  • Loading branch information...
addaleax authored and MylesBorins committed Aug 12, 2017
1 parent 4f49ae5 commit 56bb199ef0eca5f1264956853a21265fb451f0e4
Showing with 13 additions and 0 deletions.
  1. +9 −0 deps/nghttp2/lib/includes/nghttp2/nghttp2.h
  2. +4 −0 deps/nghttp2/lib/nghttp2_rcbuf.c
@@ -469,6 +469,15 @@ NGHTTP2_EXTERN void nghttp2_rcbuf_decref(nghttp2_rcbuf *rcbuf);
*/
NGHTTP2_EXTERN nghttp2_vec nghttp2_rcbuf_get_buf(nghttp2_rcbuf *rcbuf);
/**
* @function
*
* Returns 1 if the underlying buffer is statically allocated,
* and 0 otherwise. This can be useful for language bindings that wish to avoid
* creating duplicate strings for these buffers.
*/
NGHTTP2_EXTERN int nghttp2_rcbuf_is_static(const nghttp2_rcbuf *rcbuf);
/**
* @enum
*
@@ -96,3 +96,7 @@ nghttp2_vec nghttp2_rcbuf_get_buf(nghttp2_rcbuf *rcbuf) {
nghttp2_vec res = {rcbuf->base, rcbuf->len};
return res;
}
int nghttp2_rcbuf_is_static(const nghttp2_rcbuf *rcbuf) {
return rcbuf->ref == -1;
}

0 comments on commit 56bb199

Please sign in to comment.