have invokeFrameCallback print the right stack (#3351)
Exception stack variable was shadowing the function argument stack.
This commit is contained in:
parent
e41c1c0b06
commit
d9ca22a397
@ -296,20 +296,20 @@ abstract class Scheduler extends BindingBase {
|
|||||||
/// the error.
|
/// the error.
|
||||||
///
|
///
|
||||||
/// Must not be called reentrantly from within a frame callback.
|
/// Must not be called reentrantly from within a frame callback.
|
||||||
void invokeFrameCallback(FrameCallback callback, Duration timeStamp, [ StackTrace stack ]) {
|
void invokeFrameCallback(FrameCallback callback, Duration timeStamp, [ StackTrace callbackStack ]) {
|
||||||
assert(callback != null);
|
assert(callback != null);
|
||||||
assert(_FrameCallbackEntry.currentCallbackStack == null);
|
assert(_FrameCallbackEntry.currentCallbackStack == null);
|
||||||
assert(() { _FrameCallbackEntry.currentCallbackStack = stack; return true; });
|
assert(() { _FrameCallbackEntry.currentCallbackStack = callbackStack; return true; });
|
||||||
try {
|
try {
|
||||||
callback(timeStamp);
|
callback(timeStamp);
|
||||||
} catch (exception, stack) {
|
} catch (exception, exceptionStack) {
|
||||||
FlutterError.reportError(new FlutterErrorDetails(
|
FlutterError.reportError(new FlutterErrorDetails(
|
||||||
exception: exception,
|
exception: exception,
|
||||||
stack: stack,
|
stack: exceptionStack,
|
||||||
library: 'scheduler library',
|
library: 'scheduler library',
|
||||||
context: 'during a scheduler callback',
|
context: 'during a scheduler callback',
|
||||||
informationCollector: (stack == null) ? null : (StringBuffer information) {
|
informationCollector: (callbackStack == null) ? null : (StringBuffer information) {
|
||||||
information.writeln('When this callback was registered, this was the stack:\n$stack');
|
information.writeln('When this callback was registered, this was the stack:\n$callbackStack');
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user