Add missing QUICHE_EXPORT annotations to nested classes. On non-Windows platforms, a `QUICHE_EXPORT` annotation on a nesting class applies to nested classes, whereas on Windows DLL builds (such as Chromium component builds) it does not. This causes linking errors when symbols from nested classes are referenced by unit tests. Add `QUICHE_EXPORT` to four nested classes whose nesting classes are already annotated with `QUICHE_EXPORT` and whose symbols are needed when linking unit tests: - `quic::NewQpackBlockingManager::IndexSet` - `webtransport::EncapsulatedSession::InnerStream` - `quic::LibeventQuicEventLoop::AlarmFactory` - `quic::OutgoingSubgroupStream::DeliveryTimeoutDelegate` No functional change. PiperOrigin-RevId: 1018841249
diff --git a/quiche/quic/bindings/quic_libevent.h b/quiche/quic/bindings/quic_libevent.h index c37f0aa..92e0db6 100644 --- a/quiche/quic/bindings/quic_libevent.h +++ b/quiche/quic/bindings/quic_libevent.h
@@ -60,7 +60,7 @@ private: void ActivateArtificialEvents(); - class AlarmFactory : public QuicAlarmFactory { + class QUICHE_EXPORT AlarmFactory : public QuicAlarmFactory { public: AlarmFactory(LibeventQuicEventLoop* loop) : loop_(loop) {}
diff --git a/quiche/quic/core/qpack/new_qpack_blocking_manager.h b/quiche/quic/core/qpack/new_qpack_blocking_manager.h index e4942df..acc81cf 100644 --- a/quiche/quic/core/qpack/new_qpack_blocking_manager.h +++ b/quiche/quic/core/qpack/new_qpack_blocking_manager.h
@@ -27,7 +27,7 @@ public: // "IndexSet" is a misnomer. It actually keeps track of the min and max of a // set of indices. - class IndexSet { + class QUICHE_EXPORT IndexSet { public: IndexSet() = default; IndexSet(std::initializer_list<uint64_t> indices); // Test only.
diff --git a/quiche/quic/moqt/moqt_uni_stream.h b/quiche/quic/moqt/moqt_uni_stream.h index 384f836..5d938b6 100644 --- a/quiche/quic/moqt/moqt_uni_stream.h +++ b/quiche/quic/moqt/moqt_uni_stream.h
@@ -142,7 +142,7 @@ } } - class DeliveryTimeoutDelegate + class QUICHE_EXPORT DeliveryTimeoutDelegate : public quic::QuicAlarm::DelegateWithoutContext { public: explicit DeliveryTimeoutDelegate(OutgoingSubgroupStream* stream)
diff --git a/quiche/web_transport/encapsulated/encapsulated_web_transport.h b/quiche/web_transport/encapsulated/encapsulated_web_transport.h index ea1e401..3ccaf24 100644 --- a/quiche/web_transport/encapsulated/encapsulated_web_transport.h +++ b/quiche/web_transport/encapsulated/encapsulated_web_transport.h
@@ -135,7 +135,7 @@ // here, CanWrite() will start returning false. static constexpr size_t kDefaultMaxBufferedStreamData = 16 * 1024; - class InnerStream : public Stream { + class QUICHE_EXPORT InnerStream : public Stream { public: InnerStream(EncapsulatedSession* session, StreamId id); InnerStream(const InnerStream&) = delete;