Fixes nghttp2 unique_ptr types to use a copyable/movable deleter type.
This makes it easier to reassign pointer values.
PiperOrigin-RevId: 381923047
diff --git a/http2/adapter/callback_visitor.cc b/http2/adapter/callback_visitor.cc
index f1ff90a..f0dcd0b 100644
--- a/http2/adapter/callback_visitor.cc
+++ b/http2/adapter/callback_visitor.cc
@@ -45,7 +45,7 @@
nghttp2_session_callbacks* c;
nghttp2_session_callbacks_new(&c);
*c = callbacks;
- callbacks_.reset(c);
+ callbacks_ = MakeCallbacksPtr(c);
}
ssize_t CallbackVisitor::OnReadyToSend(absl::string_view serialized) {
diff --git a/http2/adapter/nghttp2_session.cc b/http2/adapter/nghttp2_session.cc
index 1809f3e..9868958 100644
--- a/http2/adapter/nghttp2_session.cc
+++ b/http2/adapter/nghttp2_session.cc
@@ -18,7 +18,7 @@
nghttp2_session_server_new2(&session, callbacks.get(), userdata, options);
break;
}
- session_.reset(session);
+ session_ = MakeSessionPtr(session);
}
NgHttp2Session::~NgHttp2Session() {
diff --git a/http2/adapter/nghttp2_test.cc b/http2/adapter/nghttp2_test.cc
index f183f7f..e489a99 100644
--- a/http2/adapter/nghttp2_test.cc
+++ b/http2/adapter/nghttp2_test.cc
@@ -75,7 +75,7 @@
s->ReadNext(length));
return 0;
});
- session_.reset(ptr);
+ session_ = MakeSessionPtr(ptr);
}
testing::StrictMock<MockNghttp2Callbacks> mock_callbacks_;
diff --git a/http2/adapter/nghttp2_util.cc b/http2/adapter/nghttp2_util.cc
index 9a136e9..fc9ca59 100644
--- a/http2/adapter/nghttp2_util.cc
+++ b/http2/adapter/nghttp2_util.cc
@@ -31,11 +31,11 @@
nghttp2_session_callbacks_unique_ptr MakeCallbacksPtr(
nghttp2_session_callbacks* callbacks) {
- return nghttp2_session_callbacks_unique_ptr(callbacks, DeleteCallbacks);
+ return nghttp2_session_callbacks_unique_ptr(callbacks, &DeleteCallbacks);
}
nghttp2_session_unique_ptr MakeSessionPtr(nghttp2_session* session) {
- return nghttp2_session_unique_ptr(session, DeleteSession);
+ return nghttp2_session_unique_ptr(session, &DeleteSession);
}
uint8_t* ToUint8Ptr(char* str) { return reinterpret_cast<uint8_t*>(str); }
diff --git a/http2/adapter/nghttp2_util.h b/http2/adapter/nghttp2_util.h
index bb093e0..78d4702 100644
--- a/http2/adapter/nghttp2_util.h
+++ b/http2/adapter/nghttp2_util.h
@@ -21,8 +21,8 @@
NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE;
inline constexpr int kCancelStatus = NGHTTP2_ERR_CANCEL;
-using CallbacksDeleter = void (&)(nghttp2_session_callbacks*);
-using SessionDeleter = void (&)(nghttp2_session*);
+using CallbacksDeleter = void (*)(nghttp2_session_callbacks*);
+using SessionDeleter = void (*)(nghttp2_session*);
using nghttp2_session_callbacks_unique_ptr =
std::unique_ptr<nghttp2_session_callbacks, CallbacksDeleter>;