OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "sky/engine/config.h" | |
6 #include "sky/engine/tonic/dart_isolate_scope.h" | 5 #include "sky/engine/tonic/dart_isolate_scope.h" |
7 | 6 |
8 namespace blink { | 7 namespace blink { |
9 | 8 |
10 DartIsolateScope::DartIsolateScope(Dart_Isolate isolate) { | 9 DartIsolateScope::DartIsolateScope(Dart_Isolate isolate) { |
11 isolate_ = isolate; | 10 isolate_ = isolate; |
12 previous_ = Dart_CurrentIsolate(); | 11 previous_ = Dart_CurrentIsolate(); |
13 if (previous_ == isolate_) | 12 if (previous_ == isolate_) |
14 return; | 13 return; |
15 if (previous_) | 14 if (previous_) |
16 Dart_ExitIsolate(); | 15 Dart_ExitIsolate(); |
17 Dart_EnterIsolate(isolate_); | 16 Dart_EnterIsolate(isolate_); |
18 } | 17 } |
19 | 18 |
20 DartIsolateScope::~DartIsolateScope() { | 19 DartIsolateScope::~DartIsolateScope() { |
21 DCHECK(Dart_CurrentIsolate() == isolate_); | 20 DCHECK(Dart_CurrentIsolate() == isolate_); |
22 if (previous_ == isolate_) | 21 if (previous_ == isolate_) |
23 return; | 22 return; |
24 Dart_ExitIsolate(); | 23 Dart_ExitIsolate(); |
25 if (previous_) | 24 if (previous_) |
26 Dart_EnterIsolate(previous_); | 25 Dart_EnterIsolate(previous_); |
27 } | 26 } |
28 | 27 |
29 } // namespace blink | 28 } // namespace blink |
OLD | NEW |