Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / tools / android / forwarder2 / device_controller.h
index b1441d8..567a08d 100644 (file)
@@ -49,7 +49,6 @@ class DeviceController {
       const base::WeakPtr<DeviceController>& device_controller_ptr,
       scoped_ptr<DeviceListener> device_listener);
 
-  base::WeakPtrFactory<DeviceController> weak_ptr_factory_;
   const scoped_ptr<Socket> host_socket_;
   // Used to notify the controller to exit.
   const int exit_notifier_fd_;
@@ -58,6 +57,12 @@ class DeviceController {
   const scoped_refptr<base::SingleThreadTaskRunner> construction_task_runner_;
   ListenersMap listeners_;
 
+  //WeakPtrFactory's documentation says:
+  // Member variables should appear before the WeakPtrFactory, to ensure
+  // that any WeakPtrs to Controller are invalidated before its members
+  // variable's destructors are executed, rendering them invalid.
+  base::WeakPtrFactory<DeviceController> weak_ptr_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(DeviceController);
 };