summaryrefslogtreecommitdiff
path: root/src/libcamera
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera')
-rw-r--r--src/libcamera/bound_method.cpp5
-rw-r--r--src/libcamera/include/message.h5
-rw-r--r--src/libcamera/message.cpp5
3 files changed, 9 insertions, 6 deletions
diff --git a/src/libcamera/bound_method.cpp b/src/libcamera/bound_method.cpp
index 45c76577..82339b7e 100644
--- a/src/libcamera/bound_method.cpp
+++ b/src/libcamera/bound_method.cpp
@@ -48,7 +48,8 @@ namespace libcamera {
* deadlock will occur.
*/
-void BoundMethodBase::activatePack(void *pack, bool deleteMethod)
+void BoundMethodBase::activatePack(std::shared_ptr<BoundMethodPackBase> pack,
+ bool deleteMethod)
{
ConnectionType type = connectionType_;
if (type == ConnectionTypeAuto) {
@@ -61,7 +62,7 @@ void BoundMethodBase::activatePack(void *pack, bool deleteMethod)
switch (type) {
case ConnectionTypeDirect:
default:
- invokePack(pack);
+ invokePack(pack.get());
if (deleteMethod)
delete this;
break;
diff --git a/src/libcamera/include/message.h b/src/libcamera/include/message.h
index 311755cc..8e8b013d 100644
--- a/src/libcamera/include/message.h
+++ b/src/libcamera/include/message.h
@@ -48,7 +48,8 @@ private:
class InvokeMessage : public Message
{
public:
- InvokeMessage(BoundMethodBase *method, void *pack,
+ InvokeMessage(BoundMethodBase *method,
+ std::shared_ptr<BoundMethodPackBase> pack,
Semaphore *semaphore = nullptr,
bool deleteMethod = false);
~InvokeMessage();
@@ -59,7 +60,7 @@ public:
private:
BoundMethodBase *method_;
- void *pack_;
+ std::shared_ptr<BoundMethodPackBase> pack_;
Semaphore *semaphore_;
bool deleteMethod_;
};
diff --git a/src/libcamera/message.cpp b/src/libcamera/message.cpp
index c35bb33d..77f2bdd5 100644
--- a/src/libcamera/message.cpp
+++ b/src/libcamera/message.cpp
@@ -123,7 +123,8 @@ Message::Type Message::registerMessageType()
* \param[in] deleteMethod True to delete the \a method when the message is
* destroyed
*/
-InvokeMessage::InvokeMessage(BoundMethodBase *method, void *pack,
+InvokeMessage::InvokeMessage(BoundMethodBase *method,
+ std::shared_ptr<BoundMethodPackBase> pack,
Semaphore *semaphore, bool deleteMethod)
: Message(Message::InvokeMessage), method_(method), pack_(pack),
semaphore_(semaphore), deleteMethod_(deleteMethod)
@@ -148,7 +149,7 @@ InvokeMessage::~InvokeMessage()
*/
void InvokeMessage::invoke()
{
- method_->invokePack(pack_);
+ method_->invokePack(pack_.get());
}
/**