summaryrefslogtreecommitdiff
path: root/src/cam
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-08-04 00:49:42 +0200
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-08-05 13:01:13 +0200
commit1074604c9e2b6d9afa0247f2ca62b3140131d639 (patch)
tree96b3938e505ff36b9fd5c23986c8389965daa1e3 /src/cam
parent375fef72f85ba9184c860c4af86013e8688896e7 (diff)
cam: Use the common cleanup function on failure
The different error paths in init() are out of sync. Instead of fixing them switch to using the cleanup() function which does the right thing for all cases. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Diffstat (limited to 'src/cam')
-rw-r--r--src/cam/main.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/cam/main.cpp b/src/cam/main.cpp
index ec59e9ea..6761d638 100644
--- a/src/cam/main.cpp
+++ b/src/cam/main.cpp
@@ -107,22 +107,23 @@ int CamApp::init(int argc, char **argv)
std::cout << "Camera "
<< std::string(options_[OptCamera])
<< " not found" << std::endl;
- cm_->stop();
+ cleanup();
return -ENODEV;
}
if (camera_->acquire()) {
std::cout << "Failed to acquire camera" << std::endl;
- camera_.reset();
- cm_->stop();
+ cleanup();
return -EINVAL;
}
std::cout << "Using camera " << camera_->name() << std::endl;
ret = prepareConfig();
- if (ret)
+ if (ret) {
+ cleanup();
return ret;
+ }
}
if (options_.isSet(OptMonitor)) {