You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2018/05/07 07:53:11 UTC
[38/52] [abbrv] incubator-weex git commit: * [android] Add function
for report layer overflow error.
* [android] Add function for report layer overflow error.
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/6d2337d0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/6d2337d0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/6d2337d0
Branch: refs/heads/master
Commit: 6d2337d098e1b36f635afa49acabde901cf95674
Parents: 99f1c04
Author: miomin <69...@qq.com>
Authored: Fri May 4 11:46:04 2018 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Mon May 7 15:52:09 2018 +0800
----------------------------------------------------------------------
.../com/taobao/weex/ui/view/WXFrameLayout.java | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6d2337d0/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
index cfb1ec6..eb3d676 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/WXFrameLayout.java
@@ -105,23 +105,29 @@ public class WXFrameLayout extends FrameLayout implements WXGestureObservable,IR
try {
dispatchDrawInterval(canvas);
} catch (StackOverflowError e) {
- int deep = calLayerDeep(this, 0);
- WXExceptionUtils.commitCriticalExceptionRT(getComponent().getInstanceId(),
- WXErrorCode.WX_RENDER_ERR_LAYER_OVERFLOW,
- "draw android view",
- WXErrorCode.WX_RENDER_ERR_LAYER_OVERFLOW.getErrorMsg() + "Layer overflow limit error: " + deep + " layers!",
- null);
+ int deep = reportLayerOverFlowError();
throw new LayerOverFlowLimitException("Layer overflow limit error: " + deep + " layers!");
}
} else {
try {
dispatchDrawInterval(canvas);
} catch (StackOverflowError e){
+ reportLayerOverFlowError();
WXLogUtils.e("FlatGUI Crashed when dispatchDraw", WXLogUtils.getStackTrace(e));
}
}
}
+ private int reportLayerOverFlowError() {
+ int deep = calLayerDeep(this, 0);
+ WXExceptionUtils.commitCriticalExceptionRT(getComponent().getInstanceId(),
+ WXErrorCode.WX_RENDER_ERR_LAYER_OVERFLOW,
+ "draw android view",
+ WXErrorCode.WX_RENDER_ERR_LAYER_OVERFLOW.getErrorMsg() + "Layer overflow limit error: " + deep + " layers!",
+ null);
+ return deep;
+ }
+
private void dispatchDrawInterval(Canvas canvas) {
if (mWidgets != null) {
canvas.save();