@@ -2039,14 +2039,14 @@ bool Session::addTorrent(const MagnetUri &magnetUri, const AddTorrentParams &par
20392039{
20402040 if (!magnetUri.isValid ()) return false ;
20412041
2042- return addTorrent_impl (params, magnetUri );
2042+ return addTorrent_impl (magnetUri, params );
20432043}
20442044
20452045bool Session::addTorrent (const TorrentInfo &torrentInfo, const AddTorrentParams ¶ms)
20462046{
20472047 if (!torrentInfo.isValid ()) return false ;
20482048
2049- return addTorrent_impl (params, MagnetUri (), torrentInfo );
2049+ return addTorrent_impl (torrentInfo, params );
20502050}
20512051
20522052LoadTorrentParams Session::initLoadTorrentParams (const AddTorrentParams &addTorrentParams)
@@ -2087,9 +2087,11 @@ LoadTorrentParams Session::initLoadTorrentParams(const AddTorrentParams &addTorr
20872087}
20882088
20892089// Add a torrent to the BitTorrent session
2090- bool Session::addTorrent_impl (const AddTorrentParams &addTorrentParams , const MagnetUri &magnetUri, TorrentInfo metadata )
2090+ bool Session::addTorrent_impl (const std::variant<MagnetUri, TorrentInfo> &source , const AddTorrentParams &addTorrentParams )
20912091{
2092- const bool hasMetadata = metadata.isValid ();
2092+ const bool hasMetadata = std::holds_alternative<TorrentInfo>(source);
2093+ TorrentInfo metadata = (hasMetadata ? std::get<TorrentInfo>(source) : TorrentInfo {});
2094+ const MagnetUri &magnetUri = (hasMetadata ? MagnetUri {} : std::get<MagnetUri>(source));
20932095 const InfoHash hash = (hasMetadata ? metadata.hash () : magnetUri.hash ());
20942096
20952097 // It looks illogical that we don't just use an existing handle,
0 commit comments