aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSiva Velusamy <vsiva@google.com>2013-01-23 02:21:57 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-01-23 02:21:57 +0000
commit8f05484bde79afb980283512f85bbbe6cce91200 (patch)
tree74abbd452ff70f0c9e5db404ed4801348918d85b
parent65f72c669a606046a6b74d1d35a1032a4eb56643 (diff)
parent2cd8cae457b25efbd83c87f8ee8fa582281d8829 (diff)
downloadsdk-8f05484bde79afb980283512f85bbbe6cce91200.zip
sdk-8f05484bde79afb980283512f85bbbe6cce91200.tar.gz
sdk-8f05484bde79afb980283512f85bbbe6cce91200.tar.bz2
Merge "Fix bug #8054449 hierarchyviewer crashes on connection/disconnections"
-rw-r--r--hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java4
-rw-r--r--hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java3
-rw-r--r--hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java4
3 files changed, 8 insertions, 3 deletions
diff --git a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java
index 4bd5d6b..0febcef 100644
--- a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java
+++ b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java
@@ -135,14 +135,14 @@ public class ViewServerDevice extends AbstractHvDevice {
@Override
public void addWindowChangeListener(IWindowChangeListener l) {
- if (mViewServerInfo.protocolVersion >= 3) {
+ if (mViewServerInfo != null && mViewServerInfo.protocolVersion >= 3) {
WindowUpdater.startListenForWindowChanges(l, mDevice);
}
}
@Override
public void removeWindowChangeListener(IWindowChangeListener l) {
- if (mViewServerInfo.protocolVersion >= 3) {
+ if (mViewServerInfo != null && mViewServerInfo.protocolVersion >= 3) {
WindowUpdater.stopListenForWindowChanges(l, mDevice);
}
}
diff --git a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java
index 9dbb989..a67d400 100644
--- a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java
+++ b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java
@@ -72,6 +72,9 @@ public class WindowUpdater {
public static void stopListenForWindowChanges(IWindowChangeListener listener, IDevice device) {
synchronized (sWindowChangeListeners) {
ArrayList<IWindowChangeListener> listeners = sWindowChangeListeners.get(device);
+ if (listeners == null) {
+ return;
+ }
listeners.remove(listener);
// There are more listeners, so don't stop the listening thread.
if (listeners.size() != 0) {
diff --git a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java
index c3154c8..ae8ad26 100644
--- a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java
+++ b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java
@@ -330,7 +330,9 @@ public class DeviceSelector extends Composite implements IWindowChangeListener,
@Override
public void widgetSelected(SelectionEvent e) {
- Object selection = ((TreeItem) e.item).getData();
+ TreeItem item = (TreeItem) e.item;
+ if (item == null) return;
+ Object selection = item.getData();
if (selection instanceof IHvDevice) {
mModel.setSelection((IHvDevice) selection, null);
} else if (selection instanceof Window) {