[Differential] [Commented On] D1231: Add Remote Access interface to KWayland

graesslin (Martin Gräßlin) noreply at phabricator.kde.org
Mon Jun 13 13:51:38 UTC 2016


graesslin added inline comments.

INLINE COMMENTS

> test_remote_access.cpp:161
> +    // client fd is different, not subject to check
> +    QVERIFY(rbuf->width() == 50);
> +    QVERIFY(rbuf->height() == 50);

use QCOMPARE to test two values. If it fails with QCOMPARE you get the values it actually had. With QVERIFY you only see that it failed

> registry.h:144
> +        TextInputManagerUnstableV2, ///< Refers to zwp_text_input_manager_v2, @since 5.23
> +        RemoteAccessManager ///< Refers to org_kde_kwin_remote_access_manager interface, @since 5.23
>      };

just a note: it's 5.24 since today...

> remote_access.cpp:66
> +    rbuf->setup(requested);
> +    qDebug() << "Client: Got buffer, server fd:" << buffer_id;
> +

qCDebug please

> remote_access.h:193
> +Q_SIGNALS:
> +    void paramsObtained();
> +

hmm maybe parametersObtained?

> remote_access_interface.cpp:28
> +
> +#include <QtCore/QDebug>
> +#include <QHash>

you can just include "logging_p.h"

> remote_access_interface.cpp:240
> +
> +        qDebug() << "Server: remote buffer returned, client" << wl_resource_get_id(resource)
> +                                                     << ", id" << rbuf->id()

qCDebug

> remote_access_interface.cpp:263
> +        // no more clients using this buffer
> +        qDebug() << "Server: buffer released, fd" << bh.buf->fd();
> +        emit q->bufferReleased(bh.buf);

qCDebug

> remote_access_interface.cpp:336
> +const struct org_kde_kwin_remote_buffer_interface RemoteBufferInterface::Private::s_interface = {
> +    releaseCallback
> +};

you can use the new resourceDestroyedCallback in resource_p.h. It handles the destroy correctly and that will trigger the unbind and deleteLater automatically.

> remote_access_interface.cpp:346
> +
> +    p->q->deleteLater(); // also purges it from manager's list
> +}

that would trigger a double delete as I had to learn very painfully lately.

> remote_access_interface.cpp:356-359
> +    if (resource) {
> +        wl_resource_destroy(resource);
> +        resource = nullptr;
> +    }

you don't need that, it's already in Resource

> remote_access_interface.h:45
> + **/
> +class KWAYLANDSERVER_EXPORT GbmBuffer
> +{

Thinking out loud:

What if in future we pass non GbmBuffers? Should we then still call it GbmBuffer or do we need a new class? Maybe we should make it a nested class to RemoteAccessManagerInterface and then just call it Buffer? Or keep it outside and call it more generic RemoteBuffer?

> remote_access_interface.h:77
> +     **/
> +    void sendBufferReady(const GbmBuffer *buf);
> +    /**

who's the owner of the GbmBuffer? Who will delete it?

> remote_access_interface_p.h:33
> + * @brief Holds data of passed buffer and client resource. Also controls buffer lifecycle.
> + */
> +class RemoteBufferInterface : public Resource

could you please add a note about that it's an internal class

> remote_access_interface_p.h:58
> +#endif
> \ No newline at end of file


nitpick

REPOSITORY
  rKWAYLAND KWayland

REVISION DETAIL
  https://phabricator.kde.org/D1231

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: Kanedias, graesslin
Cc: plasma-devel, sebas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160613/0b29f63f/attachment-0001.html>


More information about the Plasma-devel mailing list