From b0bdaa4960358c9f0f2bf4874fccb391993502b9 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Thu, 16 Jul 2020 16:29:37 +0900 Subject: [PATCH] DSWaylandOutput: use macros of Pimpl Change-Id: I2195d8bbe647d72445e81f1fa689bdb0cb70d764 --- src/DSWaylandServer/DSWaylandOutput.cpp | 7 +++++-- src/DSWaylandServer/DSWaylandOutput.h | 16 ++++------------ src/DSWaylandServer/DSWaylandOutputPrivate.h | 5 ++++- tests/DSWaylandOutput-test.cpp | 6 ++++-- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/DSWaylandServer/DSWaylandOutput.cpp b/src/DSWaylandServer/DSWaylandOutput.cpp index 1d47d49..1feb389 100644 --- a/src/DSWaylandServer/DSWaylandOutput.cpp +++ b/src/DSWaylandServer/DSWaylandOutput.cpp @@ -3,10 +3,13 @@ namespace display_server { + DSWaylandOutputPrivate::DSWaylandOutputPrivate(DSWaylandOutput *p_ptr) - : DSObjectPrivate(p_ptr) + : DSObjectPrivate(p_ptr), + __p_ptr(p_ptr) { } + DSWaylandOutputPrivate::~DSWaylandOutputPrivate() { } @@ -22,7 +25,7 @@ void DSWaylandOutputPrivate::output_release(wl_output::Resource *resource) } DSWaylandOutput::DSWaylandOutput() - : DSObject(std::make_unique(this)) + : DS_INIT_PRIVATE_PTR(DSWaylandOutput) { } diff --git a/src/DSWaylandServer/DSWaylandOutput.h b/src/DSWaylandServer/DSWaylandOutput.h index ce93851..846e523 100644 --- a/src/DSWaylandServer/DSWaylandOutput.h +++ b/src/DSWaylandServer/DSWaylandOutput.h @@ -2,28 +2,20 @@ #define _DS_WAYLAND_OUTPUT_H_ #include +#include namespace display_server { class DSWaylandOutputPrivate; -class DSWaylandOutput : public DSObject +class DS_DECL_EXPORT DSWaylandOutput : public DSObject { +DS_PIMPL_USE_PRIVATE(DSWaylandOutput); + public: DSWaylandOutput(); virtual ~DSWaylandOutput(); - -private: - inline DSWaylandOutputPrivate *__d_func() - { - return reinterpret_cast(_d_ptr.get()); - } - inline const DSWaylandOutputPrivate *__d_func() const - { - return reinterpret_cast(_d_ptr.get()); - } - friend class DSWaylandOutputPrivate; }; } diff --git a/src/DSWaylandServer/DSWaylandOutputPrivate.h b/src/DSWaylandServer/DSWaylandOutputPrivate.h index 8dd08e3..031d307 100644 --- a/src/DSWaylandServer/DSWaylandOutputPrivate.h +++ b/src/DSWaylandServer/DSWaylandOutputPrivate.h @@ -7,8 +7,10 @@ namespace display_server { -class DSWaylandOutputPrivate : public DSObjectPrivate, public DSWaylandServer::wl_output +class DS_DECL_EXPORT DSWaylandOutputPrivate : public DSObjectPrivate, public DSWaylandServer::wl_output { +DS_PIMPL_USE_PUBLIC(DSWaylandOutput); + public: DSWaylandOutputPrivate() = delete; DSWaylandOutputPrivate(DSWaylandOutput *p_ptr); @@ -17,6 +19,7 @@ public: protected: void output_bind_resource(Resource *resource) override; void output_release(Resource *resource) override; + private: /* data */ }; diff --git a/tests/DSWaylandOutput-test.cpp b/tests/DSWaylandOutput-test.cpp index 3f90d0b..01143db 100644 --- a/tests/DSWaylandOutput-test.cpp +++ b/tests/DSWaylandOutput-test.cpp @@ -15,6 +15,8 @@ public: TEST_F(DSWaylandOutputTest, NewDSWaylandOutput) { DSWaylandOutput *output = new DSWaylandOutput; - delete output; - EXPECT_TRUE(true); + EXPECT_TRUE(output != nullptr); + + if (output) + delete output; } -- 2.7.4