mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-06 18:00:40 +08:00
Report Java stack from errors from sync native module calls
Reviewed By: mhorowitz Differential Revision: D5069794 fbshipit-source-id: ede314034a2eb6b063a22dbd6e5d13c8ad66e20c
This commit is contained in:
committed by
Facebook Github Bot
parent
d67628eb5a
commit
534bbfac8f
@@ -17,6 +17,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.common.MapBuilder;
|
||||
import com.facebook.react.devsupport.interfaces.StackFrame;
|
||||
|
||||
@@ -123,18 +124,23 @@ public class StackTraceHelper {
|
||||
int size = stack != null ? stack.size() : 0;
|
||||
StackFrame[] result = new StackFrame[size];
|
||||
for (int i = 0; i < size; i++) {
|
||||
ReadableMap frame = stack.getMap(i);
|
||||
String methodName = frame.getString("methodName");
|
||||
String fileName = frame.getString("file");
|
||||
int lineNumber = -1;
|
||||
if (frame.hasKey(LINE_NUMBER_KEY) && !frame.isNull(LINE_NUMBER_KEY)) {
|
||||
lineNumber = frame.getInt(LINE_NUMBER_KEY);
|
||||
ReadableType type = stack.getType(i);
|
||||
if (type == ReadableType.Map) {
|
||||
ReadableMap frame = stack.getMap(i);
|
||||
String methodName = frame.getString("methodName");
|
||||
String fileName = frame.getString("file");
|
||||
int lineNumber = -1;
|
||||
if (frame.hasKey(LINE_NUMBER_KEY) && !frame.isNull(LINE_NUMBER_KEY)) {
|
||||
lineNumber = frame.getInt(LINE_NUMBER_KEY);
|
||||
}
|
||||
int columnNumber = -1;
|
||||
if (frame.hasKey(COLUMN_KEY) && !frame.isNull(COLUMN_KEY)) {
|
||||
columnNumber = frame.getInt(COLUMN_KEY);
|
||||
}
|
||||
result[i] = new StackFrameImpl(fileName, methodName, lineNumber, columnNumber);
|
||||
} else if (type == ReadableType.String) {
|
||||
result[i] = new StackFrameImpl(null, stack.getString(i), -1, -1);
|
||||
}
|
||||
int columnNumber = -1;
|
||||
if (frame.hasKey(COLUMN_KEY) && !frame.isNull(COLUMN_KEY)) {
|
||||
columnNumber = frame.getInt(COLUMN_KEY);
|
||||
}
|
||||
result[i] = new StackFrameImpl(fileName, methodName, lineNumber, columnNumber);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user