Mir

Merge lp:~hikiko/mir/mir.fix-virt-destructorS into lp:~mir-team/mir/trunk

Proposed by Eleni Maria Stea
Status: Rejected
Rejected by: Kevin DuBois
Proposed branch: lp:~hikiko/mir/mir.fix-virt-destructorS
Merge into: lp:~mir-team/mir/trunk
Diff against target: 558 lines (+62/-25) (has conflicts)
39 files modified
3rd_party/cucumber-cpp/CTestTestfile.cmake (+2/-3)
3rd_party/cucumber-cpp/include/cucumber-cpp/internal/hook/HookRegistrar.hpp (+2/-0)
3rd_party/cucumber-cpp/include/cucumber-cpp/internal/hook/Tag.hpp (+1/-0)
3rd_party/cucumber-cpp/include/cucumber-cpp/internal/step/StepManager.hpp (+2/-0)
3rd_party/cucumber-cpp/src/CTestTestfile.cmake (+2/-2)
3rd_party/cucumber-cpp/src/connectors/wire/WireProtocol.cpp (+1/-0)
3rd_party/cucumber-cpp/tests/CTestTestfile.cmake (+2/-2)
3rd_party/cucumber-cpp/tests/utils/DriverTestRunner.hpp (+1/-0)
3rd_party/gmock-1.6.0/gtest/fused-src/gtest/gtest.h (+2/-1)
3rd_party/gmock-1.6.0/gtest/include/gtest/internal/gtest-param-util.h (+2/-1)
3rd_party/gmock-1.6.0/include/gmock/gmock-actions.h (+1/-1)
3rd_party/gmock-1.6.0/include/gmock/gmock-matchers.h (+1/-1)
CMakeLists.txt (+1/-1)
include/server/mir/compositor/buffer_allocation_strategy.h (+1/-2)
include/server/mir/compositor/buffer_bundle_surfaces.h (+1/-1)
include/server/mir/frontend/session_mediator_report.h (+2/-0)
include/server/mir/graphics/display.h (+1/-1)
include/server/mir/graphics/display_report.h (+1/-1)
include/server/mir/graphics/platform.h (+2/-0)
include/server/mir/graphics/viewable_area.h (+1/-1)
include/server/mir/options/option.h (+1/-1)
include/server/mir/server_configuration.h (+1/-1)
include/server/mir/surfaces/buffer_bundle.h (+2/-0)
include/test/mir_test_doubles/mock_android_alloc_device.h (+1/-0)
include/test/mir_test_framework/testing_process_manager.h (+1/-0)
src/client/android/android_client_buffer.cpp (+4/-0)
src/client/android/android_registrar.h (+2/-0)
src/client/client_platform.h (+2/-0)
src/client/rpc/mir_basic_rpc_channel.h (+1/-1)
src/client/rpc/mir_socket_rpc_channel.h (+6/-0)
src/server/frontend/message_processor.h (+2/-2)
src/server/frontend/socket_session.cpp (+0/-1)
src/server/graphics/gbm/gbm_display.cpp (+1/-0)
src/server/graphics/gbm/gbm_platform.cpp (+0/-1)
tests/integration-tests/compositor/multithread_harness.h (+3/-0)
tests/unit-tests/client/android/test_client_android_registrar.cpp (+2/-0)
tests/unit-tests/client/test_mir_connection.cpp (+2/-0)
tests/unit-tests/graphics/android/test_android_framebuffer_window.cpp (+1/-0)
tests/unit-tests/test_gmock_fixes.cpp (+1/-0)
Text conflict in src/client/rpc/mir_socket_rpc_channel.h
To merge this branch: bzr merge lp:~hikiko/mir/mir.fix-virt-destructorS
Reviewer Review Type Date Requested Status
Alan Griffiths Needs Fixing
Daniel van Vugt Needs Fixing
PS Jenkins bot (community) continuous-integration Needs Fixing
Review via email: mp+167705@code.launchpad.net

Commit message

Added virtual destructors where missing. It's a cleanup of this branch:
https://code.launchpad.net/~hikiko/mir/mir.fix-missing-virtual-destructors
for this bug:
https://bugs.launchpad.net/mir/+bug/1183507

Description of the change

Added virtual destructors where missing. It's a cleanup of this branch:
https://code.launchpad.net/~hikiko/mir/mir.fix-missing-virtual-destructors
for this bug:
https://bugs.launchpad.net/mir/+bug/1183507

To post a comment you must log in.
Revision history for this message
Eleni Maria Stea (hikiko) wrote :

I replaced the default destructors with virtual ~Foo () { /*TODO: make nothrow*/ } because of this: http://stackoverflow.com/questions/11497252/default-destructor-nothrow after a discussion with Alan

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Please undo all changes to 3rd_party. We don't modify those files unless they're critically broken. Changing 3rd_party files creates a maintenance problem -- we can't reliably upgrade those parts any more if they've been modified.

I also don't think the bug is really valid. I remember we have discussed the lack of virtual destructors before and concluded that unless the classes are being used in polymorphism then we don't need to bother with virtual dtors. But they don't hurt either...

So instead of rejecting, just needs fixing:
1. Text conflict in src/client/rpc/mir_socket_rpc_channel.h
2. Remove changes to 3rd_party/*

review: Needs Fixing
Revision history for this message
Eleni Maria Stea (hikiko) wrote :

@Daniel, I agree in general but I found some memory leaks in the 3rd party eg comment:
https://bugs.launchpad.net/mir/+bug/1183507/comments/6
What do you suggest to do for these?

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Maybe just keep 3rd_party changes to a minimum; where they're absolutely required.

Although the NativeWindow case I would argue is not a bug in 3rd_party at all. It's our fault for using multiple inheritance and/or mocking something not designed to be mocked...
class MockANativeWindow : public ANativeWindowInterface, public ANativeWindow

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

531 + virtual ~MockRpcChannel() {}
532 +

This shouldn't be needed. (The base class is the one that needs a virtual qualifier on its destructor.)

But the main thing that needs fixing is the merge conflict.

review: Needs Fixing
Revision history for this message
Eleni Maria Stea (hikiko) wrote :

I created an even simpler branch:
I started from trunk, merged only the src changes and then I added virtual destructors only where they are accessible. My branch is here: https://code.launchpad.net/~hikiko/mir/mir.dest-tmp I'll propose for merge...

I don't delete the past MPs because we might need to have the comments until it's approved by everyone.

Revision history for this message
Kevin DuBois (kdub) wrote :

lets move this branch to 'rejected' then... (although 'superseded' by ~hikiko/mir/mir.dest-tmp is more accurate)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '3rd_party/cucumber-cpp/CTestTestfile.cmake'
2--- 3rd_party/cucumber-cpp/CTestTestfile.cmake 2013-01-03 21:26:48 +0000
3+++ 3rd_party/cucumber-cpp/CTestTestfile.cmake 2013-06-06 07:16:29 +0000
4@@ -1,9 +1,8 @@
5 # CMake generated Testfile for
6-# Source directory: /home/augustwest/src/cucumber-cpp
7-# Build directory: /home/augustwest/src/cucumber-cpp
8+# Source directory: /home/hikiko/staging/gcc/mir.fix-missing-virtual-destructors/3rd_party/cucumber-cpp
9+# Build directory: /home/hikiko/staging/gcc/mir.fix-missing-virtual-destructors/3rd_party/cucumber-cpp
10 #
11 # This file includes the relevent testing commands required for
12 # testing this directory and lists subdirectories to be tested as well.
13 SUBDIRS(src)
14 SUBDIRS(tests)
15-SUBDIRS(examples)
16
17=== modified file '3rd_party/cucumber-cpp/include/cucumber-cpp/internal/hook/HookRegistrar.hpp'
18--- 3rd_party/cucumber-cpp/include/cucumber-cpp/internal/hook/HookRegistrar.hpp 2013-01-03 21:26:48 +0000
19+++ 3rd_party/cucumber-cpp/include/cucumber-cpp/internal/hook/HookRegistrar.hpp 2013-06-06 07:16:29 +0000
20@@ -15,11 +15,13 @@
21
22 class CallableStep {
23 public:
24+ virtual ~CallableStep() = default;
25 virtual void call() = 0;
26 };
27
28 class Hook {
29 public:
30+ virtual ~Hook() = default;
31 void setTags(const std::string &csvTagNotation);
32 virtual void invokeHook(Scenario *scenario);
33 virtual void skipHook();
34
35=== modified file '3rd_party/cucumber-cpp/include/cucumber-cpp/internal/hook/Tag.hpp'
36--- 3rd_party/cucumber-cpp/include/cucumber-cpp/internal/hook/Tag.hpp 2013-01-03 21:26:48 +0000
37+++ 3rd_party/cucumber-cpp/include/cucumber-cpp/internal/hook/Tag.hpp 2013-06-06 07:16:29 +0000
38@@ -14,6 +14,7 @@
39
40 class TagExpression {
41 public:
42+ virtual ~TagExpression() = default;
43 typedef std::vector<std::string> tag_list;
44
45 virtual bool matches(const tag_list &tags) = 0;
46
47=== modified file '3rd_party/cucumber-cpp/include/cucumber-cpp/internal/step/StepManager.hpp'
48--- 3rd_party/cucumber-cpp/include/cucumber-cpp/internal/step/StepManager.hpp 2013-01-03 21:26:48 +0000
49+++ 3rd_party/cucumber-cpp/include/cucumber-cpp/internal/step/StepManager.hpp 2013-06-06 07:16:29 +0000
50@@ -100,6 +100,7 @@
51 class StepInfo {
52 public:
53 StepInfo(const std::string &stepMatcher, const std::string source);
54+ virtual ~StepInfo() = default;
55 SingleStepMatch matches(const std::string &stepDescription);
56 virtual InvokeResult invokeStep(const InvokeArgs * pArgs) = 0;
57
58@@ -111,6 +112,7 @@
59
60 class BasicStep {
61 public:
62+ virtual ~BasicStep() = default;
63 InvokeResult invoke(const InvokeArgs *pArgs);
64
65 protected:
66
67=== modified file '3rd_party/cucumber-cpp/src/CTestTestfile.cmake'
68--- 3rd_party/cucumber-cpp/src/CTestTestfile.cmake 2013-01-03 21:26:48 +0000
69+++ 3rd_party/cucumber-cpp/src/CTestTestfile.cmake 2013-06-06 07:16:29 +0000
70@@ -1,6 +1,6 @@
71 # CMake generated Testfile for
72-# Source directory: /home/augustwest/src/cucumber-cpp/src
73-# Build directory: /home/augustwest/src/cucumber-cpp/src
74+# Source directory: /home/hikiko/staging/gcc/mir.fix-missing-virtual-destructors/3rd_party/cucumber-cpp/src
75+# Build directory: /home/hikiko/staging/gcc/mir.fix-missing-virtual-destructors/3rd_party/cucumber-cpp/src
76 #
77 # This file includes the relevent testing commands required for
78 # testing this directory and lists subdirectories to be tested as well.
79
80=== modified file '3rd_party/cucumber-cpp/src/connectors/wire/WireProtocol.cpp'
81--- 3rd_party/cucumber-cpp/src/connectors/wire/WireProtocol.cpp 2013-01-03 21:26:48 +0000
82+++ 3rd_party/cucumber-cpp/src/connectors/wire/WireProtocol.cpp 2013-06-06 07:16:29 +0000
83@@ -88,6 +88,7 @@
84
85 class CommandDecoder {
86 public:
87+ virtual ~CommandDecoder() = default;
88 virtual WireCommand *decode(const mValue & jsonArgs) const = 0;
89 };
90
91
92=== modified file '3rd_party/cucumber-cpp/tests/CTestTestfile.cmake'
93--- 3rd_party/cucumber-cpp/tests/CTestTestfile.cmake 2013-01-03 21:26:48 +0000
94+++ 3rd_party/cucumber-cpp/tests/CTestTestfile.cmake 2013-06-06 07:16:29 +0000
95@@ -1,6 +1,6 @@
96 # CMake generated Testfile for
97-# Source directory: /home/augustwest/src/cucumber-cpp/tests
98-# Build directory: /home/augustwest/src/cucumber-cpp/tests
99+# Source directory: /home/hikiko/staging/gcc/mir.fix-missing-virtual-destructors/3rd_party/cucumber-cpp/tests
100+# Build directory: /home/hikiko/staging/gcc/mir.fix-missing-virtual-destructors/3rd_party/cucumber-cpp/tests
101 #
102 # This file includes the relevent testing commands required for
103 # testing this directory and lists subdirectories to be tested as well.
104
105=== modified file '3rd_party/cucumber-cpp/tests/utils/DriverTestRunner.hpp'
106--- 3rd_party/cucumber-cpp/tests/utils/DriverTestRunner.hpp 2013-01-03 21:26:48 +0000
107+++ 3rd_party/cucumber-cpp/tests/utils/DriverTestRunner.hpp 2013-06-06 07:16:29 +0000
108@@ -68,6 +68,7 @@
109 DriverTest() {
110 failedTests = 0;
111 }
112+ virtual ~DriverTest() = default;
113 protected:
114 void expectTrue(const char *description, bool condition) {
115 updateState(description, condition);
116
117=== modified file '3rd_party/gmock-1.6.0/gtest/fused-src/gtest/gtest.h'
118--- 3rd_party/gmock-1.6.0/gtest/fused-src/gtest/gtest.h 2012-09-05 06:40:45 +0000
119+++ 3rd_party/gmock-1.6.0/gtest/fused-src/gtest/gtest.h 2013-06-06 07:16:29 +0000
120@@ -10307,7 +10307,7 @@
121 template <class ParamType>
122 class TestMetaFactoryBase {
123 public:
124- virtual ~TestMetaFactoryBase() {}
125+ virtual ~TestMetaFactoryBase() = default;
126
127 virtual TestFactoryBase* CreateTestFactory(ParamType parameter) = 0;
128 };
129@@ -10327,6 +10327,7 @@
130 typedef typename TestCase::ParamType ParamType;
131
132 TestMetaFactory() {}
133+ virtual ~TestMetaFactory() = default;
134
135 virtual TestFactoryBase* CreateTestFactory(ParamType parameter) {
136 return new ParameterizedTestFactory<TestCase>(parameter);
137
138=== modified file '3rd_party/gmock-1.6.0/gtest/include/gtest/internal/gtest-param-util.h'
139--- 3rd_party/gmock-1.6.0/gtest/include/gtest/internal/gtest-param-util.h 2012-08-08 08:07:55 +0000
140+++ 3rd_party/gmock-1.6.0/gtest/include/gtest/internal/gtest-param-util.h 2013-06-06 07:16:29 +0000
141@@ -373,7 +373,7 @@
142 template <class ParamType>
143 class TestMetaFactoryBase {
144 public:
145- virtual ~TestMetaFactoryBase() {}
146+ virtual ~TestMetaFactoryBase() = default;
147
148 virtual TestFactoryBase* CreateTestFactory(ParamType parameter) = 0;
149 };
150@@ -393,6 +393,7 @@
151 typedef typename TestCase::ParamType ParamType;
152
153 TestMetaFactory() {}
154+ virtual ~TestMetaFactory() = default;
155
156 virtual TestFactoryBase* CreateTestFactory(ParamType parameter) {
157 return new ParameterizedTestFactory<TestCase>(parameter);
158
159=== modified file '3rd_party/gmock-1.6.0/include/gmock/gmock-actions.h'
160--- 3rd_party/gmock-1.6.0/include/gmock/gmock-actions.h 2012-08-08 08:07:55 +0000
161+++ 3rd_party/gmock-1.6.0/include/gmock/gmock-actions.h 2013-06-06 07:16:29 +0000
162@@ -253,7 +253,7 @@
163 typedef typename internal::Function<F>::ArgumentTuple ArgumentTuple;
164
165 ActionInterface() {}
166- virtual ~ActionInterface() {}
167+ virtual ~ActionInterface() { /* TODO: make nothrow */ }
168
169 // Performs the action. This method is not const, as in general an
170 // action can have side effects and be stateful. For example, a
171
172=== modified file '3rd_party/gmock-1.6.0/include/gmock/gmock-matchers.h'
173--- 3rd_party/gmock-1.6.0/include/gmock/gmock-matchers.h 2012-08-10 12:33:42 +0000
174+++ 3rd_party/gmock-1.6.0/include/gmock/gmock-matchers.h 2013-06-06 07:16:29 +0000
175@@ -109,7 +109,7 @@
176 template <typename T>
177 class MatcherInterface {
178 public:
179- virtual ~MatcherInterface() {}
180+ virtual ~MatcherInterface() { /* TODO: make nothrow */ }
181
182 // Returns true iff the matcher matches x; also explains the match
183 // result to 'listener', in the form of a non-restrictive relative
184
185=== modified file 'CMakeLists.txt'
186--- CMakeLists.txt 2013-05-16 16:53:01 +0000
187+++ CMakeLists.txt 2013-06-06 07:16:29 +0000
188@@ -42,7 +42,7 @@
189 include (cmake/PrePush.cmake)
190
191 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Werror -Wall -pedantic -Wextra -fPIC")
192-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++0x -Werror -Wall -fno-strict-aliasing -pedantic -Wextra -fPIC")
193+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++0x -Werror -Wall -fno-strict-aliasing -pedantic -Wnon-virtual-dtor -Wextra -fPIC")
194 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
195
196 #####################################################################
197
198=== modified file 'include/server/mir/compositor/buffer_allocation_strategy.h'
199--- include/server/mir/compositor/buffer_allocation_strategy.h 2013-04-24 05:22:20 +0000
200+++ include/server/mir/compositor/buffer_allocation_strategy.h 2013-06-06 07:16:29 +0000
201@@ -36,13 +36,12 @@
202 class BufferAllocationStrategy
203 {
204 public:
205-
206 virtual std::unique_ptr<BufferSwapper> create_swapper(
207 BufferProperties& actual_buffer_properties,
208 BufferProperties const& requested_buffer_properties) = 0;
209
210 protected:
211- ~BufferAllocationStrategy() {}
212+ virtual ~BufferAllocationStrategy() { /* TODO: make nothrow */ }
213 BufferAllocationStrategy() {}
214
215 BufferAllocationStrategy(const BufferAllocationStrategy&);
216
217=== modified file 'include/server/mir/compositor/buffer_bundle_surfaces.h'
218--- include/server/mir/compositor/buffer_bundle_surfaces.h 2013-04-24 05:22:20 +0000
219+++ include/server/mir/compositor/buffer_bundle_surfaces.h 2013-06-06 07:16:29 +0000
220@@ -41,7 +41,7 @@
221 BufferBundleSurfaces(
222 std::unique_ptr<BufferSwapper>&& swapper, BufferProperties const& buffer_properties);
223
224- ~BufferBundleSurfaces();
225+ virtual ~BufferBundleSurfaces();
226
227 std::shared_ptr<Buffer> secure_client_buffer();
228
229
230=== modified file 'include/server/mir/frontend/session_mediator_report.h'
231--- include/server/mir/frontend/session_mediator_report.h 2013-05-30 03:50:54 +0000
232+++ include/server/mir/frontend/session_mediator_report.h 2013-06-06 07:16:29 +0000
233@@ -30,6 +30,8 @@
234 class SessionMediatorReport
235 {
236 public:
237+ virtual ~SessionMediatorReport() { /* TODO: make nothrow */ }
238+
239 virtual void session_connect_called(std::string const& app_name) = 0;
240
241 virtual void session_create_surface_called(std::string const& app_name) = 0;
242
243=== modified file 'include/server/mir/graphics/display.h'
244--- include/server/mir/graphics/display.h 2013-04-30 23:12:18 +0000
245+++ include/server/mir/graphics/display.h 2013-06-06 07:16:29 +0000
246@@ -59,7 +59,7 @@
247
248 protected:
249 Display() = default;
250- ~Display() = default;
251+ virtual ~Display() {}
252 private:
253 Display(Display const&) = delete;
254 Display& operator=(Display const&) = delete;
255
256=== modified file 'include/server/mir/graphics/display_report.h'
257--- include/server/mir/graphics/display_report.h 2013-05-10 18:16:51 +0000
258+++ include/server/mir/graphics/display_report.h 2013-06-06 07:16:29 +0000
259@@ -46,7 +46,7 @@
260
261 protected:
262 DisplayReport() = default;
263- ~DisplayReport() = default;
264+ virtual ~DisplayReport() { /* TODO: make nothrow */ }
265 DisplayReport(const DisplayReport&) = delete;
266 DisplayReport& operator=(const DisplayReport&) = delete;
267 };
268
269=== modified file 'include/server/mir/graphics/platform.h'
270--- include/server/mir/graphics/platform.h 2013-05-17 18:18:20 +0000
271+++ include/server/mir/graphics/platform.h 2013-06-06 07:16:29 +0000
272@@ -54,6 +54,8 @@
273 Platform(const Platform& p) = delete;
274 Platform& operator=(const Platform& p) = delete;
275
276+ virtual ~Platform() { /* TODO: make nothrow */ }
277+
278 virtual std::shared_ptr<compositor::GraphicBufferAllocator> create_buffer_allocator(
279 std::shared_ptr<BufferInitializer> const& buffer_initializer) = 0;
280 virtual std::shared_ptr<Display> create_display() = 0;
281
282=== modified file 'include/server/mir/graphics/viewable_area.h'
283--- include/server/mir/graphics/viewable_area.h 2013-04-24 05:22:20 +0000
284+++ include/server/mir/graphics/viewable_area.h 2013-06-06 07:16:29 +0000
285@@ -34,7 +34,7 @@
286
287 protected:
288 ViewableArea() = default;
289- ~ViewableArea() = default;
290+ virtual ~ViewableArea() { /* TODO: make nothrow */ }
291 private:
292 ViewableArea(ViewableArea const&) = delete;
293 ViewableArea& operator=(ViewableArea const&) = delete;
294
295=== modified file 'include/server/mir/options/option.h'
296--- include/server/mir/options/option.h 2013-04-24 05:22:20 +0000
297+++ include/server/mir/options/option.h 2013-06-06 07:16:29 +0000
298@@ -39,7 +39,7 @@
299
300 protected:
301 Option() = default;
302- ~Option() = default;
303+ virtual ~Option() { /* TODO: make nothrow */ }
304 Option(Option const&) = delete;
305 Option& operator=(Option const&) = delete;
306 };
307
308=== modified file 'include/server/mir/server_configuration.h'
309--- include/server/mir/server_configuration.h 2013-04-25 09:48:54 +0000
310+++ include/server/mir/server_configuration.h 2013-06-06 07:16:29 +0000
311@@ -60,7 +60,7 @@
312
313 protected:
314 ServerConfiguration() = default;
315- virtual ~ServerConfiguration() {}
316+ virtual ~ServerConfiguration() { /* TODO: make nothrow */ }
317
318 ServerConfiguration(ServerConfiguration const&) = delete;
319 ServerConfiguration& operator=(ServerConfiguration const&) = delete;
320
321=== modified file 'include/server/mir/surfaces/buffer_bundle.h'
322--- include/server/mir/surfaces/buffer_bundle.h 2013-04-24 05:22:20 +0000
323+++ include/server/mir/surfaces/buffer_bundle.h 2013-06-06 07:16:29 +0000
324@@ -40,6 +40,8 @@
325 class BufferBundle
326 {
327 public:
328+ virtual ~BufferBundle() { /* TODO: make nothrow */ }
329+
330 virtual std::shared_ptr<compositor::Buffer> secure_client_buffer() = 0;
331 virtual std::shared_ptr<surfaces::GraphicRegion> lock_back_buffer() = 0;
332 virtual geometry::PixelFormat get_bundle_pixel_format() = 0;
333
334=== modified file 'include/test/mir_test_doubles/mock_android_alloc_device.h'
335--- include/test/mir_test_doubles/mock_android_alloc_device.h 2013-05-01 17:35:49 +0000
336+++ include/test/mir_test_doubles/mock_android_alloc_device.h 2013-06-06 07:16:29 +0000
337@@ -30,6 +30,7 @@
338 class ICSAllocInterface
339 {
340 public:
341+ virtual ~ICSAllocInterface() = default;
342 virtual int alloc_interface(alloc_device_t* dev, int w, int h,
343 int format, int usage, buffer_handle_t* handle, int* stride) = 0;
344 virtual int free_interface(alloc_device_t* dev, buffer_handle_t handle) = 0;
345
346=== modified file 'include/test/mir_test_framework/testing_process_manager.h'
347--- include/test/mir_test_framework/testing_process_manager.h 2013-04-24 05:22:20 +0000
348+++ include/test/mir_test_framework/testing_process_manager.h 2013-06-06 07:16:29 +0000
349@@ -40,6 +40,7 @@
350
351 struct TestingClientConfiguration
352 {
353+ virtual ~TestingClientConfiguration() = default;
354 // Code to run in client process
355 virtual void exec() = 0;
356 };
357
358=== modified file 'src/client/android/android_client_buffer.cpp'
359--- src/client/android/android_client_buffer.cpp 2013-05-03 22:53:42 +0000
360+++ src/client/android/android_client_buffer.cpp 2013-06-06 07:16:29 +0000
361@@ -41,6 +41,10 @@
362 pack_native_window_buffer();
363 }
364
365+mcla::AndroidClientBuffer::~AndroidClientBuffer()
366+{
367+}
368+
369 static void incRef(android_native_base_t*)
370 {
371 }
372
373=== modified file 'src/client/android/android_registrar.h'
374--- src/client/android/android_registrar.h 2013-04-24 05:22:20 +0000
375+++ src/client/android/android_registrar.h 2013-06-06 07:16:29 +0000
376@@ -35,6 +35,8 @@
377 class AndroidRegistrar
378 {
379 public:
380+ virtual ~AndroidRegistrar() = default;
381+
382 virtual void register_buffer(const native_handle_t *handle) = 0;
383 virtual void unregister_buffer(const native_handle_t *handle) = 0;
384 virtual std::shared_ptr<char> secure_for_cpu(std::shared_ptr<const native_handle_t> handle, const geometry::Rectangle) = 0;
385
386=== modified file 'src/client/client_platform.h'
387--- src/client/client_platform.h 2013-05-03 18:39:57 +0000
388+++ src/client/client_platform.h 2013-06-06 07:16:29 +0000
389@@ -38,6 +38,8 @@
390 ClientPlatform(const ClientPlatform& p) = delete;
391 ClientPlatform& operator=(const ClientPlatform& p) = delete;
392
393+ virtual ~ClientPlatform() { /* TODO: make nothrow */ }
394+
395 virtual MirPlatformType platform_type() const = 0;
396 virtual std::shared_ptr<ClientBufferFactory> create_buffer_factory() = 0;
397 virtual std::shared_ptr<EGLNativeWindowType> create_egl_native_window(ClientSurface *surface) = 0;
398
399=== modified file 'src/client/rpc/mir_basic_rpc_channel.h'
400--- src/client/rpc/mir_basic_rpc_channel.h 2013-05-29 12:04:04 +0000
401+++ src/client/rpc/mir_basic_rpc_channel.h 2013-06-06 07:16:29 +0000
402@@ -95,7 +95,7 @@
403 {
404 public:
405 MirBasicRpcChannel();
406- ~MirBasicRpcChannel();
407+ virtual ~MirBasicRpcChannel();
408
409 virtual void set_event_handler(events::EventSink *sink) = 0;
410
411
412=== modified file 'src/client/rpc/mir_socket_rpc_channel.h'
413--- src/client/rpc/mir_socket_rpc_channel.h 2013-05-29 12:04:04 +0000
414+++ src/client/rpc/mir_socket_rpc_channel.h 2013-06-06 07:16:29 +0000
415@@ -49,9 +49,15 @@
416 class MirSocketRpcChannel : public MirBasicRpcChannel
417 {
418 public:
419+<<<<<<< TREE
420 MirSocketRpcChannel(std::string const& endpoint,
421 std::shared_ptr<RpcReport> const& rpc_report);
422 ~MirSocketRpcChannel();
423+=======
424+ MirSocketRpcChannel();
425+ MirSocketRpcChannel(const std::string& endpoint, const std::shared_ptr<Logger>& log);
426+ virtual ~MirSocketRpcChannel();
427+>>>>>>> MERGE-SOURCE
428
429 void set_event_handler(events::EventSink *sink);
430
431
432=== modified file 'src/server/frontend/message_processor.h'
433--- src/server/frontend/message_processor.h 2013-04-24 05:22:20 +0000
434+++ src/server/frontend/message_processor.h 2013-06-06 07:16:29 +0000
435@@ -37,7 +37,7 @@
436 virtual void send_fds(std::vector<int32_t> const& fd) = 0;
437 protected:
438 MessageSender() = default;
439- ~MessageSender() = default;
440+ virtual ~MessageSender() { /* TODO: make nothrow */ }
441 MessageSender(MessageSender const&) = delete;
442 MessageSender& operator=(MessageSender const&) = delete;
443 };
444@@ -47,7 +47,7 @@
445 virtual bool process_message(std::istream& msg) = 0;
446 protected:
447 MessageProcessor() = default;
448- ~MessageProcessor() = default;
449+ virtual ~MessageProcessor() = default;
450 MessageProcessor(MessageProcessor const&) = delete;
451 MessageProcessor& operator=(MessageProcessor const&) = delete;
452 };
453
454=== modified file 'src/server/frontend/socket_session.cpp'
455--- src/server/frontend/socket_session.cpp 2013-04-24 05:22:20 +0000
456+++ src/server/frontend/socket_session.cpp 2013-06-06 07:16:29 +0000
457@@ -27,7 +27,6 @@
458
459 namespace mfd = mir::frontend::detail;
460
461-
462 void mfd::SocketSession::send(std::string const& body)
463 {
464 const size_t size = body.size();
465
466=== modified file 'src/server/graphics/gbm/gbm_display.cpp'
467--- src/server/graphics/gbm/gbm_display.cpp 2013-05-13 09:23:04 +0000
468+++ src/server/graphics/gbm/gbm_display.cpp 2013-06-06 07:16:29 +0000
469@@ -64,6 +64,7 @@
470 shared_egl.make_current();
471 }
472
473+//do not remove this empty destructor (unique_ptr)
474 mgg::GBMDisplay::~GBMDisplay()
475 {
476 }
477
478=== modified file 'src/server/graphics/gbm/gbm_platform.cpp'
479--- src/server/graphics/gbm/gbm_platform.cpp 2013-05-30 03:50:54 +0000
480+++ src/server/graphics/gbm/gbm_platform.cpp 2013-06-06 07:16:29 +0000
481@@ -17,7 +17,6 @@
482 */
483
484 #include "gbm_platform.h"
485-
486 #include "gbm_buffer_allocator.h"
487 #include "gbm_display.h"
488 #include "internal_client.h"
489
490=== modified file 'tests/integration-tests/compositor/multithread_harness.h'
491--- tests/integration-tests/compositor/multithread_harness.h 2013-01-11 23:47:40 +0000
492+++ tests/integration-tests/compositor/multithread_harness.h 2013-06-06 07:16:29 +0000
493@@ -32,6 +32,8 @@
494 class SynchronizerController
495 {
496 public:
497+ virtual ~SynchronizerController() { /* TODO: make nothrow */ }
498+
499 virtual void ensure_child_is_waiting() = 0;
500 virtual void activate_waiting_child() = 0;
501 virtual void kill_thread() = 0;
502@@ -41,6 +43,7 @@
503 class SynchronizerSpawned
504 {
505 public:
506+ virtual ~SynchronizerSpawned() { /* TODO: make nothrow */ }
507 virtual bool child_enter_wait() = 0;
508 virtual bool child_check_wait_request() = 0;
509 };
510
511=== modified file 'tests/unit-tests/client/android/test_client_android_registrar.cpp'
512--- tests/unit-tests/client/android/test_client_android_registrar.cpp 2013-04-24 05:22:20 +0000
513+++ tests/unit-tests/client/android/test_client_android_registrar.cpp 2013-06-06 07:16:29 +0000
514@@ -33,6 +33,8 @@
515 class ICSRegistrarInterface
516 {
517 public:
518+ virtual ~ICSRegistrarInterface() = default;
519+
520 virtual int registerBuffer_interface(struct gralloc_module_t const* module, buffer_handle_t handle) const = 0;
521 virtual int unregisterBuffer_interface(struct gralloc_module_t const* module, buffer_handle_t handle) const = 0;
522 virtual int lock_interface(struct gralloc_module_t const* module, buffer_handle_t handle,
523
524=== modified file 'tests/unit-tests/client/test_mir_connection.cpp'
525--- tests/unit-tests/client/test_mir_connection.cpp 2013-05-31 08:09:00 +0000
526+++ tests/unit-tests/client/test_mir_connection.cpp 2013-06-06 07:16:29 +0000
527@@ -41,6 +41,8 @@
528
529 struct MockRpcChannel : public mir::client::rpc::MirBasicRpcChannel
530 {
531+ virtual ~MockRpcChannel() {}
532+
533 void CallMethod(const google::protobuf::MethodDescriptor* method,
534 google::protobuf::RpcController*,
535 const google::protobuf::Message* parameters,
536
537=== modified file 'tests/unit-tests/graphics/android/test_android_framebuffer_window.cpp'
538--- tests/unit-tests/graphics/android/test_android_framebuffer_window.cpp 2013-05-20 15:55:48 +0000
539+++ tests/unit-tests/graphics/android/test_android_framebuffer_window.cpp 2013-06-06 07:16:29 +0000
540@@ -31,6 +31,7 @@
541 class ANativeWindowInterface
542 {
543 public:
544+ virtual ~ANativeWindowInterface() = default;
545 virtual int query_interface(const ANativeWindow* win , int code, int* value) const = 0;
546 };
547
548
549=== modified file 'tests/unit-tests/test_gmock_fixes.cpp'
550--- tests/unit-tests/test_gmock_fixes.cpp 2012-07-12 14:11:36 +0000
551+++ tests/unit-tests/test_gmock_fixes.cpp 2013-06-06 07:16:29 +0000
552@@ -26,6 +26,7 @@
553 {
554 struct Interface
555 {
556+ virtual ~Interface() { /* TODO: make nothrow */ }
557 virtual std::unique_ptr<int> function() const = 0;
558 };
559

Subscribers

People subscribed via source and target branches