diff --git a/deps/nghttp2/lib/includes/nghttp2/nghttp2.h b/deps/nghttp2/lib/includes/nghttp2/nghttp2.h index 159010040c798c..848ef066be4405 100644 --- a/deps/nghttp2/lib/includes/nghttp2/nghttp2.h +++ b/deps/nghttp2/lib/includes/nghttp2/nghttp2.h @@ -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 * diff --git a/deps/nghttp2/lib/nghttp2_rcbuf.c b/deps/nghttp2/lib/nghttp2_rcbuf.c index 24f561af97af7c..7e7814d2d3caac 100644 --- a/deps/nghttp2/lib/nghttp2_rcbuf.c +++ b/deps/nghttp2/lib/nghttp2_rcbuf.c @@ -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; +}