Browse Source

Fix crash happened in UvRunOnce

Cheng Zhao 8 years ago
parent
commit
2ef1b70897
1 changed files with 6 additions and 0 deletions
  1. 6 0
      atom/common/node_bindings.cc

+ 6 - 0
atom/common/node_bindings.cc

@@ -232,6 +232,12 @@ void NodeBindings::RunMessageLoop() {
 void NodeBindings::UvRunOnce() {
   node::Environment* env = uv_env();
 
+  // When doing navigation without restarting renderer process, it may happen
+  // that the node environment is destroyed but the message loop is still there.
+  // In this case we should not run uv loop.
+  if (!env)
+    return;
+
   // Use Locker in browser process.
   mate::Locker locker(env->isolate());
   v8::HandleScope handle_scope(env->isolate());