| Index: net/tools/quic/quic_epoll_connection_helper.cc
|
| diff --git a/net/tools/quic/quic_epoll_connection_helper.cc b/net/tools/quic/quic_epoll_connection_helper.cc
|
| index 853f0d0257195a1d7aa4a18b63bea8add550307c..ec68754b06904add575322c0adaa1f09123c77ca 100644
|
| --- a/net/tools/quic/quic_epoll_connection_helper.cc
|
| +++ b/net/tools/quic/quic_epoll_connection_helper.cc
|
| @@ -21,8 +21,9 @@ namespace {
|
|
|
| class QuicEpollAlarm : public QuicAlarm {
|
| public:
|
| - QuicEpollAlarm(EpollServer* epoll_server, QuicAlarm::Delegate* delegate)
|
| - : QuicAlarm(delegate),
|
| + QuicEpollAlarm(EpollServer* epoll_server,
|
| + QuicArenaScopedPtr<Delegate> delegate)
|
| + : QuicAlarm(std::move(delegate)),
|
| epoll_server_(epoll_server),
|
| epoll_alarm_impl_(this) {}
|
|
|
| @@ -78,7 +79,19 @@ QuicRandom* QuicEpollConnectionHelper::GetRandomGenerator() {
|
|
|
| QuicAlarm* QuicEpollConnectionHelper::CreateAlarm(
|
| QuicAlarm::Delegate* delegate) {
|
| - return new QuicEpollAlarm(epoll_server_, delegate);
|
| + return new QuicEpollAlarm(epoll_server_,
|
| + QuicArenaScopedPtr<QuicAlarm::Delegate>(delegate));
|
| +}
|
| +
|
| +QuicArenaScopedPtr<QuicAlarm> QuicEpollConnectionHelper::CreateAlarm(
|
| + QuicArenaScopedPtr<QuicAlarm::Delegate> delegate,
|
| + QuicConnectionArena* arena) {
|
| + if (arena != nullptr) {
|
| + return arena->New<QuicEpollAlarm>(epoll_server_, std::move(delegate));
|
| + } else {
|
| + return QuicArenaScopedPtr<QuicAlarm>(
|
| + new QuicEpollAlarm(epoll_server_, std::move(delegate)));
|
| + }
|
| }
|
|
|
| QuicBufferAllocator* QuicEpollConnectionHelper::GetBufferAllocator() {
|
|
|