Merge "Check return values for null." into klp-modular-dev

This commit is contained in:
Craig Mautner
2014-03-27 20:22:20 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 4 deletions

View File

@ -917,6 +917,10 @@ public class WindowManagerService extends IWindowManager.Stub
final IWindow client = win.mClient; final IWindow client = win.mClient;
final WindowToken token = win.mToken; final WindowToken token = win.mToken;
final DisplayContent displayContent = win.getDisplayContent(); final DisplayContent displayContent = win.getDisplayContent();
if (displayContent == null) {
// It doesn't matter this display is going away.
return 0;
}
final WindowList windows = win.getWindowList(); final WindowList windows = win.getWindowList();
final int N = windows.size(); final int N = windows.size();
@ -1094,6 +1098,9 @@ public class WindowManagerService extends IWindowManager.Stub
private void addAttachedWindowToListLocked(final WindowState win, boolean addToToken) { private void addAttachedWindowToListLocked(final WindowState win, boolean addToToken) {
final WindowToken token = win.mToken; final WindowToken token = win.mToken;
final DisplayContent displayContent = win.getDisplayContent(); final DisplayContent displayContent = win.getDisplayContent();
if (displayContent == null) {
return;
}
final WindowState attached = win.mAttachedWindow; final WindowState attached = win.mAttachedWindow;
WindowList tokenWindowList = getTokenWindowsOnDisplay(token, displayContent); WindowList tokenWindowList = getTokenWindowsOnDisplay(token, displayContent);
@ -2251,6 +2258,11 @@ public class WindowManagerService extends IWindowManager.Stub
return WindowManagerGlobal.ADD_APP_EXITING; return WindowManagerGlobal.ADD_APP_EXITING;
} }
if (win.getDisplayContent() == null) {
Slog.w(TAG, "Adding window to Display that has been removed.");
return WindowManagerGlobal.ADD_INVALID_DISPLAY;
}
mPolicy.adjustWindowParamsLw(win.mAttrs); mPolicy.adjustWindowParamsLw(win.mAttrs);
win.setShowToOwnerOnlyLocked(mPolicy.checkShowToOwnerOnly(attrs)); win.setShowToOwnerOnlyLocked(mPolicy.checkShowToOwnerOnly(attrs));
@ -2744,7 +2756,7 @@ public class WindowManagerService extends IWindowManager.Stub
return; return;
} }
final DisplayInfo displayInfo = window.getDisplayContent().getDisplayInfo(); final DisplayInfo displayInfo = displayContent.getDisplayInfo();
final RectF dispRect = new RectF(0, 0, final RectF dispRect = new RectF(0, 0,
displayInfo.logicalWidth, displayInfo.logicalHeight); displayInfo.logicalWidth, displayInfo.logicalHeight);
matrix.mapRect(dispRect); matrix.mapRect(dispRect);

View File

@ -171,9 +171,15 @@ class WindowStateAnimator {
mAnimator = service.mAnimator; mAnimator = service.mAnimator;
mPolicy = service.mPolicy; mPolicy = service.mPolicy;
mContext = service.mContext; mContext = service.mContext;
final DisplayInfo displayInfo = win.getDisplayContent().getDisplayInfo(); final DisplayContent displayContent = win.getDisplayContent();
mAnimDw = displayInfo.appWidth; if (displayContent != null) {
mAnimDh = displayInfo.appHeight; final DisplayInfo displayInfo = displayContent.getDisplayInfo();
mAnimDw = displayInfo.appWidth;
mAnimDh = displayInfo.appHeight;
} else {
Slog.w(TAG, "WindowStateAnimator ctor: Display has been removed");
// This is checked on return and dealt with.
}
mWin = win; mWin = win;
mAttachedWinAnimator = win.mAttachedWindow == null mAttachedWinAnimator = win.mAttachedWindow == null