summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-01-22 15:31:22 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-01-22 20:44:04 +0200
commita22dcaaa786de67786eeaeb47598ed76339249ad (patch)
tree81a9cf50def556cc97f64861cdc0bba8b55e3ba7
parent29c3b54f0c8ec7e3aeed8971d24f939bc4bfab04 (diff)
cam: options: Don't implement move semantics for OptionsParser::Options
The compiler creates a move constructor automatically when none is supplied, and it does the right thing by default in this case. Using std::move() inside the function prevents the compiler from doing return value optimization and actually hinders performances. Using std::move() in the caller is unnecessary, the move constructor is used automatically by the compiler. For all these reasons remove the tentative optimization that resulted in worse performances and worse code. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r--src/cam/main.cpp2
-rw-r--r--src/cam/options.cpp13
-rw-r--r--src/cam/options.h2
3 files changed, 2 insertions, 15 deletions
diff --git a/src/cam/main.cpp b/src/cam/main.cpp
index 22211670..0d37039f 100644
--- a/src/cam/main.cpp
+++ b/src/cam/main.cpp
@@ -33,7 +33,7 @@ static int parseOptions(int argc, char *argv[])
parser.addOption(OptHelp, "Display this help message", "help");
parser.addOption(OptList, "List all cameras", "list");
- options = std::move(parser.parse(argc, argv));
+ options = parser.parse(argc, argv);
if (!options.valid())
return -EINVAL;
diff --git a/src/cam/options.cpp b/src/cam/options.cpp
index d391a0e5..82acff9b 100644
--- a/src/cam/options.cpp
+++ b/src/cam/options.cpp
@@ -102,7 +102,7 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv)
options.values_[c] = optarg ? optarg : "";
}
- return std::move(options);
+ return options;
}
void OptionsParser::usage()
@@ -160,17 +160,6 @@ OptionsParser::Options::Options()
{
}
-OptionsParser::Options::Options(Options &&other)
- : values_(std::move(other.values_))
-{
-}
-
-OptionsParser::Options &OptionsParser::Options::operator=(Options &&other)
-{
- values_ = other.values_;
- return *this;
-}
-
bool OptionsParser::Options::valid() const
{
return !values_.empty();
diff --git a/src/cam/options.h b/src/cam/options.h
index 88336dfe..f99ea730 100644
--- a/src/cam/options.h
+++ b/src/cam/options.h
@@ -23,8 +23,6 @@ public:
class Options {
public:
Options();
- Options(Options &&other);
- Options &operator=(Options &&other);
bool valid() const;
bool isSet(int opt) const;