remove std::bind usage as much as possible
Reduces unstripped size. stripped size is the same. Also took the time to remove using std::placeholders. Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
		| @@ -89,10 +89,8 @@ GroupCountVisitor(TagCountMap &map, TagType group, | |||||||
| 		  const LightSong &song) noexcept | 		  const LightSong &song) noexcept | ||||||
| { | { | ||||||
| 	const Tag &tag = song.tag; | 	const Tag &tag = song.tag; | ||||||
| 	VisitTagWithFallbackOrEmpty(tag, group, | 	VisitTagWithFallbackOrEmpty(tag, group, [&](const auto &val) | ||||||
| 				    std::bind(CollectGroupCounts, std::ref(map), | 		{ return CollectGroupCounts(map, tag, val);  }); | ||||||
| 					      std::cref(tag), |  | ||||||
| 					      std::placeholders::_1)); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| void | void | ||||||
| @@ -109,9 +107,9 @@ PrintSongCount(Response &r, const Partition &partition, const char *name, | |||||||
|  |  | ||||||
| 		SearchStats stats; | 		SearchStats stats; | ||||||
|  |  | ||||||
| 		using namespace std::placeholders; | 		const auto f = [&](const auto &song) | ||||||
| 		const auto f = std::bind(stats_visitor_song, std::ref(stats), | 			{ return stats_visitor_song(stats, song); }; | ||||||
| 					 _1); |  | ||||||
| 		db.Visit(selection, f); | 		db.Visit(selection, f); | ||||||
|  |  | ||||||
| 		PrintSearchStats(r, stats); | 		PrintSearchStats(r, stats); | ||||||
| @@ -121,9 +119,9 @@ PrintSongCount(Response &r, const Partition &partition, const char *name, | |||||||
|  |  | ||||||
| 		TagCountMap map; | 		TagCountMap map; | ||||||
|  |  | ||||||
| 		using namespace std::placeholders; | 		const auto f = [&map,group](const auto &song) | ||||||
| 		const auto f = std::bind(GroupCountVisitor, std::ref(map), | 			{ return GroupCountVisitor(map, group, song); }; | ||||||
| 					 group, _1); |  | ||||||
| 		db.Visit(selection, f); | 		db.Visit(selection, f); | ||||||
|  |  | ||||||
| 		Print(r, group, map); | 		Print(r, group, map); | ||||||
|   | |||||||
| @@ -38,7 +38,6 @@ search_add_to_playlist(const Database &db, const Storage *storage, | |||||||
| 		       const char *playlist_path_utf8, | 		       const char *playlist_path_utf8, | ||||||
| 		       const DatabaseSelection &selection) | 		       const DatabaseSelection &selection) | ||||||
| { | { | ||||||
| 	using namespace std::placeholders; |  | ||||||
| 	const auto f = [=](auto && arg1) { return AddSong(storage, playlist_path_utf8, arg1); }; | 	const auto f = [=](auto && arg1) { return AddSong(storage, playlist_path_utf8, arg1); }; | ||||||
| 	db.Visit(selection, f); | 	db.Visit(selection, f); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -146,16 +146,23 @@ db_selection_print(Response &r, Partition &partition, | |||||||
| { | { | ||||||
| 	const Database &db = partition.GetDatabaseOrThrow(); | 	const Database &db = partition.GetDatabaseOrThrow(); | ||||||
|  |  | ||||||
| 	using namespace std::placeholders; |  | ||||||
| 	const auto d = selection.filter == nullptr | 	const auto d = selection.filter == nullptr | ||||||
| 		? std::bind(full ? PrintDirectoryFull : PrintDirectoryBrief, | 		? [&,base](const auto &dir) | ||||||
| 			    std::ref(r), base, _1) | 			{ return full ? | ||||||
|  | 				PrintDirectoryFull(r, base, dir) : | ||||||
|  | 				PrintDirectoryBrief(r, base, dir); } | ||||||
| 		: VisitDirectory(); | 		: VisitDirectory(); | ||||||
| 	VisitSong s = std::bind(full ? PrintSongFull : PrintSongBrief, |  | ||||||
| 				std::ref(r), base, _1); | 	VisitSong s = [&,base](const auto &song) | ||||||
|  | 		{ return full ? | ||||||
|  | 			PrintSongFull(r, base, song) : | ||||||
|  | 			PrintSongBrief(r, base, song); }; | ||||||
|  |  | ||||||
| 	const auto p = selection.filter == nullptr | 	const auto p = selection.filter == nullptr | ||||||
| 		? std::bind(full ? PrintPlaylistFull : PrintPlaylistBrief, | 		? [&,base](const auto &playlist, const auto &dir) | ||||||
| 			    std::ref(r), base, _1, _2) | 			{ return full ? | ||||||
|  | 				PrintPlaylistFull(r, base, playlist, dir) : | ||||||
|  | 				PrintPlaylistBrief(r, base, playlist, dir); } | ||||||
| 		: VisitPlaylist(); | 		: VisitPlaylist(); | ||||||
|  |  | ||||||
| 	db.Visit(selection, d, s, p); | 	db.Visit(selection, d, s, p); | ||||||
| @@ -175,9 +182,9 @@ PrintSongUris(Response &r, Partition &partition, | |||||||
|  |  | ||||||
| 	const DatabaseSelection selection("", true, filter); | 	const DatabaseSelection selection("", true, filter); | ||||||
|  |  | ||||||
| 	using namespace std::placeholders; | 	const auto f = [&](const auto &song) | ||||||
| 	const auto f = std::bind(PrintSongURIVisitor, | 		{ return PrintSongURIVisitor(r, song); }; | ||||||
| 				 std::ref(r), _1); |  | ||||||
| 	db.Visit(selection, f); | 	db.Visit(selection, f); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -40,7 +40,7 @@ AddFromDatabase(Partition &partition, const DatabaseSelection &selection) | |||||||
| { | { | ||||||
| 	const Database &db = partition.instance.GetDatabaseOrThrow(); | 	const Database &db = partition.instance.GetDatabaseOrThrow(); | ||||||
|  |  | ||||||
| 	using namespace std::placeholders; | 	const auto f = [&](const auto &song) | ||||||
| 	const auto f = std::bind(AddToQueue, std::ref(partition), _1); | 		{ return AddToQueue(partition, song); }; | ||||||
| 	db.Visit(selection, f); | 	db.Visit(selection, f); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -75,10 +75,9 @@ GetStats(const Database &db, const DatabaseSelection &selection) | |||||||
| 	stats.Clear(); | 	stats.Clear(); | ||||||
|  |  | ||||||
| 	StringSet artists, albums; | 	StringSet artists, albums; | ||||||
| 	using namespace std::placeholders; | 	const auto f = [&](const auto &song) | ||||||
| 	const auto f = std::bind(StatsVisitSong, | 		{ return StatsVisitSong(stats, artists, albums, song); }; | ||||||
| 				 std::ref(stats), std::ref(artists), |  | ||||||
| 				 std::ref(albums), _1); |  | ||||||
| 	db.Visit(selection, f); | 	db.Visit(selection, f); | ||||||
|  |  | ||||||
| 	stats.artist_count = artists.size(); | 	stats.artist_count = artists.size(); | ||||||
|   | |||||||
| @@ -70,22 +70,20 @@ WalkMount(std::string_view base, const Database &db, | |||||||
| 	  const VisitDirectory &visit_directory, const VisitSong &visit_song, | 	  const VisitDirectory &visit_directory, const VisitSong &visit_song, | ||||||
| 	  const VisitPlaylist &visit_playlist) | 	  const VisitPlaylist &visit_playlist) | ||||||
| { | { | ||||||
| 	using namespace std::placeholders; |  | ||||||
|  |  | ||||||
| 	VisitDirectory vd; | 	VisitDirectory vd; | ||||||
| 	if (visit_directory) | 	if (visit_directory) | ||||||
| 		vd = std::bind(PrefixVisitDirectory, | 		vd = [base,&visit_directory](const auto &dir) | ||||||
| 			       base, std::ref(visit_directory), _1); | 			{ return PrefixVisitDirectory(base, visit_directory, dir); }; | ||||||
|  |  | ||||||
| 	VisitSong vs; | 	VisitSong vs; | ||||||
| 	if (visit_song) | 	if (visit_song) | ||||||
| 		vs = std::bind(PrefixVisitSong, | 		vs = [base,&visit_song](const auto &song) | ||||||
| 			       base, std::ref(visit_song), _1); | 			{ return PrefixVisitSong(base, visit_song, song); }; | ||||||
|  |  | ||||||
| 	VisitPlaylist vp; | 	VisitPlaylist vp; | ||||||
| 	if (visit_playlist) | 	if (visit_playlist) | ||||||
| 		vp = std::bind(PrefixVisitPlaylist, | 		vp = [base,&visit_playlist](const auto &playlist, const auto &dir) | ||||||
| 			       base, std::ref(visit_playlist), _1, _2); | 			{ return PrefixVisitPlaylist(base, visit_playlist, playlist, dir); }; | ||||||
|  |  | ||||||
| 	DatabaseSelection selection(old_selection); | 	DatabaseSelection selection(old_selection); | ||||||
| 	selection.uri = uri; | 	selection.uri = uri; | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ decoder_plugin_print(Response &r, | |||||||
| void | void | ||||||
| decoder_list_print(Response &r) | decoder_list_print(Response &r) | ||||||
| { | { | ||||||
| 	using namespace std::placeholders; | 	const auto f = [&](const auto &plugin) | ||||||
| 	const auto f = std::bind(decoder_plugin_print, std::ref(r), _1); | 		{ return decoder_plugin_print(r, plugin); }; | ||||||
| 	decoder_plugins_for_each_enabled(f); | 	decoder_plugins_for_each_enabled(f); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -183,11 +183,9 @@ decoder_run_stream_locked(DecoderBridge &bridge, InputStream &is, | |||||||
| 	UriSuffixBuffer suffix_buffer; | 	UriSuffixBuffer suffix_buffer; | ||||||
| 	const char *const suffix = uri_get_suffix(uri, suffix_buffer); | 	const char *const suffix = uri_get_suffix(uri, suffix_buffer); | ||||||
|  |  | ||||||
| 	using namespace std::placeholders; | 	const auto f = [&,suffix](const auto &plugin) | ||||||
| 	const auto f = std::bind(decoder_run_stream_plugin, | 		{ return decoder_run_stream_plugin(bridge, is, lock, suffix, plugin, tried_r); }; | ||||||
| 				 std::ref(bridge), std::ref(is), std::ref(lock), |  | ||||||
| 				 suffix, |  | ||||||
| 				 _1, std::ref(tried_r)); |  | ||||||
| 	return decoder_plugins_try(f); | 	return decoder_plugins_try(f); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -91,7 +91,6 @@ DsdToDopConverter::Open(unsigned _channels) noexcept | |||||||
| ConstBuffer<uint32_t> | ConstBuffer<uint32_t> | ||||||
| DsdToDopConverter::Convert(ConstBuffer<uint8_t> src) noexcept | DsdToDopConverter::Convert(ConstBuffer<uint8_t> src) noexcept | ||||||
| { | { | ||||||
| 	using namespace std::placeholders; |  | ||||||
| 	return rest_buffer.Process<uint32_t>(buffer, src, 2 * channels, | 	return rest_buffer.Process<uint32_t>(buffer, src, 2 * channels, | ||||||
| 		[=](auto && arg1, auto && arg2, auto && arg3) { return DsdToDop(arg1, arg2, arg3, channels); }); | 		[=](auto && arg1, auto && arg2, auto && arg3) { return DsdToDop(arg1, arg2, arg3, channels); }); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -63,7 +63,6 @@ Dsd16Converter::Open(unsigned _channels) noexcept | |||||||
| ConstBuffer<uint16_t> | ConstBuffer<uint16_t> | ||||||
| Dsd16Converter::Convert(ConstBuffer<uint8_t> src) noexcept | Dsd16Converter::Convert(ConstBuffer<uint8_t> src) noexcept | ||||||
| { | { | ||||||
| 	using namespace std::placeholders; |  | ||||||
| 	return rest_buffer.Process<uint16_t>(buffer, src, channels, | 	return rest_buffer.Process<uint16_t>(buffer, src, channels, | ||||||
| 					     [=](auto && arg1, auto && arg2, auto && arg3) { return Dsd8To16(arg1, arg2, arg3, channels); }); | 					     [=](auto && arg1, auto && arg2, auto && arg3) { return Dsd8To16(arg1, arg2, arg3, channels); }); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -65,7 +65,6 @@ Dsd32Converter::Open(unsigned _channels) noexcept | |||||||
| ConstBuffer<uint32_t> | ConstBuffer<uint32_t> | ||||||
| Dsd32Converter::Convert(ConstBuffer<uint8_t> src) noexcept | Dsd32Converter::Convert(ConstBuffer<uint8_t> src) noexcept | ||||||
| { | { | ||||||
| 	using namespace std::placeholders; |  | ||||||
| 	return rest_buffer.Process<uint32_t>(buffer, src, channels, | 	return rest_buffer.Process<uint32_t>(buffer, src, channels, | ||||||
| 					     [=](auto && arg1, auto && arg2, auto && arg3) { return Dsd8To32(arg1, arg2, arg3, channels); }); | 					     [=](auto && arg1, auto && arg2, auto && arg3) { return Dsd8To32(arg1, arg2, arg3, channels); }); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Rosen Penev
					Rosen Penev