summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/v4l2/v4l2_compat_manager.cpp10
-rw-r--r--src/v4l2/v4l2_compat_manager.h2
2 files changed, 4 insertions, 8 deletions
diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
index 585046e9..ded568be 100644
--- a/src/v4l2/v4l2_compat_manager.cpp
+++ b/src/v4l2/v4l2_compat_manager.cpp
@@ -198,11 +198,7 @@ void *V4L2CompatManager::mmap(void *addr, size_t length, int prot, int flags,
if (map == MAP_FAILED)
return map;
- /*
- * Map to V4L2CameraProxy directly to prevent adding more references
- * to V4L2CameraFile.
- */
- mmaps_[map] = file->proxy();
+ mmaps_[map] = file;
return map;
}
@@ -212,9 +208,9 @@ int V4L2CompatManager::munmap(void *addr, size_t length)
if (device == mmaps_.end())
return fops_.munmap(addr, length);
- V4L2CameraProxy *proxy = device->second;
+ V4L2CameraFile *file = device->second.get();
- int ret = proxy->munmap(addr, length);
+ int ret = file->proxy()->munmap(addr, length);
if (ret < 0)
return ret;
diff --git a/src/v4l2/v4l2_compat_manager.h b/src/v4l2/v4l2_compat_manager.h
index f52069f7..64af9a8c 100644
--- a/src/v4l2/v4l2_compat_manager.h
+++ b/src/v4l2/v4l2_compat_manager.h
@@ -65,5 +65,5 @@ private:
std::vector<std::unique_ptr<V4L2CameraProxy>> proxies_;
std::map<int, std::shared_ptr<V4L2CameraFile>> files_;
- std::map<void *, V4L2CameraProxy *> mmaps_;
+ std::map<void *, std::shared_ptr<V4L2CameraFile>> mmaps_;
};