openwrt-packages/multimedia/gerbera/patches/010-Os-unique_ptr.patch

43 lines
1.6 KiB
Diff

From 7071316114b7d196808d943ce654b355927e73e1 Mon Sep 17 00:00:00 2001
From: Karlchen <k_straussberger@netzland.net>
Date: Mon, 23 Aug 2021 09:04:36 +0200
Subject: [PATCH] Fix linkage error in on aarch64 with g++-10
fixes #1674
---
src/content/content_manager.cc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- a/src/content/content_manager.cc
+++ b/src/content/content_manager.cc
@@ -622,17 +622,17 @@ void ContentManager::_rescanDirectory(co
std::error_code ec;
auto rootDir = fs::directory_entry(location, ec);
- fs::directory_iterator dIter;
+ std::unique_ptr<fs::directory_iterator> dIter;
if (!ec && rootDir.exists(ec) && rootDir.is_directory(ec)) {
- dIter = fs::directory_iterator(location, ec);
+ dIter = std::make_unique<fs::directory_iterator>(location, ec);
if (ec) {
log_error("_rescanDirectory: Failed to iterate {}, {}", location.c_str(), ec.message());
}
} else {
log_error("Could not open {}: {}", location.c_str(), ec.message());
}
- if (ec) {
+ if (ec || !dIter) {
if (adir->persistent()) {
removeObject(adir, containerID, false);
if (location == adir->getLocation()) {
@@ -673,7 +673,7 @@ void ContentManager::_rescanDirectory(co
adir->setCurrentLMT(location, std::chrono::seconds::zero());
std::shared_ptr<CdsObject> firstObject;
- for (auto&& dirEnt : dIter) {
+ for (auto&& dirEnt : *dIter) {
auto&& newPath = dirEnt.path();
auto&& name = newPath.filename().string();
if (name[0] == '.' && !asSetting.hidden) {