[libcamera-devel] [PATCH v1 5/6] libcamera: Don't use emitter object pointer argument to slot

Umang Jain umang.jain at ideasonboard.com
Mon Aug 30 14:40:45 CEST 2021


Hi Laurent,

On 8/27/21 8:08 AM, Laurent Pinchart wrote:
> In many cases, the emitter object passed as a pointer from signals to
> slots is also available as a class member. Use the class member when
> this occurs, to prepare for removal of the emitter object pointer from
> signals.
>
> In test/event.cpp, this additionally requires moving the EventNotifier
> to a class member.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>


Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>

> ---
>   src/libcamera/ipc_pipe_unixsocket.cpp           |  4 ++--
>   test/event-thread.cpp                           |  4 ++--
>   test/event.cpp                                  | 17 +++++++++++------
>   test/ipa/ipa_interface_test.cpp                 |  4 ++--
>   test/ipc/unixsocket.cpp                         |  8 ++++----
>   test/ipc/unixsocket_ipc.cpp                     |  4 ++--
>   .../module_ipa_proxy_worker.cpp.tmpl            |  4 ++--
>   7 files changed, 25 insertions(+), 20 deletions(-)
>
> diff --git a/src/libcamera/ipc_pipe_unixsocket.cpp b/src/libcamera/ipc_pipe_unixsocket.cpp
> index 4511775fb467..38bcc30a21ed 100644
> --- a/src/libcamera/ipc_pipe_unixsocket.cpp
> +++ b/src/libcamera/ipc_pipe_unixsocket.cpp
> @@ -82,10 +82,10 @@ int IPCPipeUnixSocket::sendAsync(const IPCMessage &data)
>   	return 0;
>   }
>   
> -void IPCPipeUnixSocket::readyRead(IPCUnixSocket *socket)
> +void IPCPipeUnixSocket::readyRead([[maybe_unused]] IPCUnixSocket *socket)
>   {
>   	IPCUnixSocket::Payload payload;
> -	int ret = socket->receive(&payload);
> +	int ret = socket_->receive(&payload);
>   	if (ret) {
>   		LOG(IPCPipe, Error) << "Receive message failed" << ret;
>   		return;
> diff --git a/test/event-thread.cpp b/test/event-thread.cpp
> index 575261664c2f..12021710ef41 100644
> --- a/test/event-thread.cpp
> +++ b/test/event-thread.cpp
> @@ -66,9 +66,9 @@ public:
>   	}
>   
>   private:
> -	void readReady(EventNotifier *notifier)
> +	void readReady([[maybe_unused]] EventNotifier *notifier)
>   	{
> -		size_ = read(notifier->fd(), data_, sizeof(data_));
> +		size_ = read(notifier_->fd(), data_, sizeof(data_));
>   		notified_ = true;
>   	}
>   
> diff --git a/test/event.cpp b/test/event.cpp
> index c2274344b7f0..e338335c11e8 100644
> --- a/test/event.cpp
> +++ b/test/event.cpp
> @@ -22,14 +22,16 @@ using namespace libcamera;
>   class EventTest : public Test
>   {
>   protected:
> -	void readReady(EventNotifier *notifier)
> +	void readReady([[maybe_unused]] EventNotifier *notifier)
>   	{
> -		size_ = read(notifier->fd(), data_, sizeof(data_));
> +		size_ = read(notifier_->fd(), data_, sizeof(data_));
>   		notified_ = true;
>   	}
>   
>   	int init()
>   	{
> +		notifier_ = nullptr;
> +
>   		return pipe(pipefd_);
>   	}
>   
> @@ -40,8 +42,8 @@ protected:
>   		Timer timeout;
>   		ssize_t ret;
>   
> -		EventNotifier readNotifier(pipefd_[0], EventNotifier::Read);
> -		readNotifier.activated.connect(this, &EventTest::readReady);
> +		notifier_ = new EventNotifier(pipefd_[0], EventNotifier::Read);
> +		notifier_->activated.connect(this, &EventTest::readReady);
>   
>   		/* Test read notification with data. */
>   		memset(data_, 0, sizeof(data_));
> @@ -76,7 +78,7 @@ protected:
>   
>   		/* Test read notifier disabling. */
>   		notified_ = false;
> -		readNotifier.setEnabled(false);
> +		notifier_->setEnabled(false);
>   
>   		ret = write(pipefd_[1], data.data(), data.size());
>   		if (ret < 0) {
> @@ -95,7 +97,7 @@ protected:
>   
>   		/* Test read notifier enabling. */
>   		notified_ = false;
> -		readNotifier.setEnabled(true);
> +		notifier_->setEnabled(true);
>   
>   		timeout.start(100);
>   		dispatcher->processEvents();
> @@ -111,6 +113,8 @@ protected:
>   
>   	void cleanup()
>   	{
> +		delete notifier_;
> +
>   		close(pipefd_[0]);
>   		close(pipefd_[1]);
>   	}
> @@ -118,6 +122,7 @@ protected:
>   private:
>   	int pipefd_[2];
>   
> +	EventNotifier *notifier_;
>   	bool notified_;
>   	char data_[16];
>   	ssize_t size_;
> diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp
> index ee9f26510784..0ee51f71fd87 100644
> --- a/test/ipa/ipa_interface_test.cpp
> +++ b/test/ipa/ipa_interface_test.cpp
> @@ -153,9 +153,9 @@ protected:
>   	}
>   
>   private:
> -	void readTrace(EventNotifier *notifier)
> +	void readTrace([[maybe_unused]] EventNotifier *notifier)
>   	{
> -		ssize_t s = read(notifier->fd(), &trace_, sizeof(trace_));
> +		ssize_t s = read(notifier_->fd(), &trace_, sizeof(trace_));
>   		if (s < 0) {
>   			int ret = errno;
>   			cerr << "Failed to read from IPA test FIFO at '"
> diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
> index aa35c8f071f1..6507fb12d74b 100644
> --- a/test/ipc/unixsocket.cpp
> +++ b/test/ipc/unixsocket.cpp
> @@ -68,12 +68,12 @@ public:
>   	}
>   
>   private:
> -	void readyRead(IPCUnixSocket *ipc)
> +	void readyRead([[maybe_unused]] IPCUnixSocket *ipc)
>   	{
>   		IPCUnixSocket::Payload message, response;
>   		int ret;
>   
> -		ret = ipc->receive(&message);
> +		ret = ipc_.receive(&message);
>   		if (ret) {
>   			cerr << "Receive message failed: " << ret << endl;
>   			return;
> @@ -447,14 +447,14 @@ private:
>   		return 0;
>   	}
>   
> -	void readyRead(IPCUnixSocket *ipc)
> +	void readyRead([[maybe_unused]] IPCUnixSocket *ipc)
>   	{
>   		if (!callResponse_) {
>   			cerr << "Read ready without expecting data, fail." << endl;
>   			return;
>   		}
>   
> -		if (ipc->receive(callResponse_)) {
> +		if (ipc_.receive(callResponse_)) {
>   			cerr << "Receive message failed" << endl;
>   			return;
>   		}
> diff --git a/test/ipc/unixsocket_ipc.cpp b/test/ipc/unixsocket_ipc.cpp
> index 6fe7fd9b8fc5..60317a4956b8 100644
> --- a/test/ipc/unixsocket_ipc.cpp
> +++ b/test/ipc/unixsocket_ipc.cpp
> @@ -65,12 +65,12 @@ public:
>   	}
>   
>   private:
> -	void readyRead(IPCUnixSocket *ipc)
> +	void readyRead([[maybe_unused]] IPCUnixSocket *ipc)
>   	{
>   		IPCUnixSocket::Payload message;
>   		int ret;
>   
> -		ret = ipc->receive(&message);
> +		ret = ipc_.receive(&message);
>   		if (ret) {
>   			cerr << "Receive message failed: " << ret << endl;
>   			return;
> diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl
> index 8a88bd467da7..b4cd1aa9e823 100644
> --- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl
> +++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl
> @@ -57,10 +57,10 @@ public:
>   
>   	~{{proxy_worker_name}}() {}
>   
> -	void readyRead(IPCUnixSocket *socket)
> +	void readyRead([[maybe_unused]] IPCUnixSocket *socket)
>   	{
>   		IPCUnixSocket::Payload _message;
> -		int _retRecv = socket->receive(&_message);
> +		int _retRecv = socket_.receive(&_message);
>   		if (_retRecv) {
>   			LOG({{proxy_worker_name}}, Error)
>   				<< "Receive message failed: " << _retRecv;


More information about the libcamera-devel mailing list