Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: src/assert-scope.cc

Issue 888613002: Initial switch to Chromium-style CHECK_* and DCHECK_* macros. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix slow dchecks. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project 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 "src/assert-scope.h" 5 #include "src/assert-scope.h"
6 6
7 #include "src/base/lazy-instance.h" 7 #include "src/base/lazy-instance.h"
8 #include "src/base/platform/platform.h" 8 #include "src/base/platform/platform.h"
9 #include "src/isolate-inl.h" 9 #include "src/isolate-inl.h"
10 #include "src/utils.h" 10 #include "src/utils.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 PerThreadAssertData::SetCurrent(data_); 75 PerThreadAssertData::SetCurrent(data_);
76 } 76 }
77 data_->IncrementLevel(); 77 data_->IncrementLevel();
78 old_state_ = data_->Get(kType); 78 old_state_ = data_->Get(kType);
79 data_->Set(kType, kAllow); 79 data_->Set(kType, kAllow);
80 } 80 }
81 81
82 82
83 template <PerThreadAssertType kType, bool kAllow> 83 template <PerThreadAssertType kType, bool kAllow>
84 PerThreadAssertScope<kType, kAllow>::~PerThreadAssertScope() { 84 PerThreadAssertScope<kType, kAllow>::~PerThreadAssertScope() {
85 DCHECK_NOT_NULL(data_); 85 DCHECK(data_);
86 data_->Set(kType, old_state_); 86 data_->Set(kType, old_state_);
87 if (data_->DecrementLevel()) { 87 if (data_->DecrementLevel()) {
88 PerThreadAssertData::SetCurrent(NULL); 88 PerThreadAssertData::SetCurrent(NULL);
89 delete data_; 89 delete data_;
90 } 90 }
91 } 91 }
92 92
93 93
94 // static 94 // static
95 template <PerThreadAssertType kType, bool kAllow> 95 template <PerThreadAssertType kType, bool kAllow>
96 bool PerThreadAssertScope<kType, kAllow>::IsAllowed() { 96 bool PerThreadAssertScope<kType, kAllow>::IsAllowed() {
97 PerThreadAssertData* data = PerThreadAssertData::GetCurrent(); 97 PerThreadAssertData* data = PerThreadAssertData::GetCurrent();
98 return data == NULL || data->Get(kType); 98 return data == NULL || data->Get(kType);
99 } 99 }
100 100
101 101
102 template <PerIsolateAssertType kType, bool kAllow> 102 template <PerIsolateAssertType kType, bool kAllow>
103 class PerIsolateAssertScope<kType, kAllow>::DataBit 103 class PerIsolateAssertScope<kType, kAllow>::DataBit
104 : public BitField<bool, kType, 1> {}; 104 : public BitField<bool, kType, 1> {};
105 105
106 106
107 template <PerIsolateAssertType kType, bool kAllow> 107 template <PerIsolateAssertType kType, bool kAllow>
108 PerIsolateAssertScope<kType, kAllow>::PerIsolateAssertScope(Isolate* isolate) 108 PerIsolateAssertScope<kType, kAllow>::PerIsolateAssertScope(Isolate* isolate)
109 : isolate_(isolate), old_data_(isolate->per_isolate_assert_data()) { 109 : isolate_(isolate), old_data_(isolate->per_isolate_assert_data()) {
110 DCHECK_NOT_NULL(isolate); 110 DCHECK(isolate);
111 STATIC_ASSERT(kType < 32); 111 STATIC_ASSERT(kType < 32);
112 isolate_->set_per_isolate_assert_data(DataBit::update(old_data_, kAllow)); 112 isolate_->set_per_isolate_assert_data(DataBit::update(old_data_, kAllow));
113 } 113 }
114 114
115 115
116 template <PerIsolateAssertType kType, bool kAllow> 116 template <PerIsolateAssertType kType, bool kAllow>
117 PerIsolateAssertScope<kType, kAllow>::~PerIsolateAssertScope() { 117 PerIsolateAssertScope<kType, kAllow>::~PerIsolateAssertScope() {
118 isolate_->set_per_isolate_assert_data(old_data_); 118 isolate_->set_per_isolate_assert_data(old_data_);
119 } 119 }
120 120
(...skipping 25 matching lines...) Expand all
146 template class PerIsolateAssertScope<JAVASCRIPT_EXECUTION_THROWS, true>; 146 template class PerIsolateAssertScope<JAVASCRIPT_EXECUTION_THROWS, true>;
147 template class PerIsolateAssertScope<ALLOCATION_FAILURE_ASSERT, false>; 147 template class PerIsolateAssertScope<ALLOCATION_FAILURE_ASSERT, false>;
148 template class PerIsolateAssertScope<ALLOCATION_FAILURE_ASSERT, true>; 148 template class PerIsolateAssertScope<ALLOCATION_FAILURE_ASSERT, true>;
149 template class PerIsolateAssertScope<DEOPTIMIZATION_ASSERT, false>; 149 template class PerIsolateAssertScope<DEOPTIMIZATION_ASSERT, false>;
150 template class PerIsolateAssertScope<DEOPTIMIZATION_ASSERT, true>; 150 template class PerIsolateAssertScope<DEOPTIMIZATION_ASSERT, true>;
151 template class PerIsolateAssertScope<COMPILATION_ASSERT, false>; 151 template class PerIsolateAssertScope<COMPILATION_ASSERT, false>;
152 template class PerIsolateAssertScope<COMPILATION_ASSERT, true>; 152 template class PerIsolateAssertScope<COMPILATION_ASSERT, true>;
153 153
154 } // namespace internal 154 } // namespace internal
155 } // namespace v8 155 } // namespace v8
OLDNEW
« no previous file with comments | « src/arm64/macro-assembler-arm64.cc ('k') | src/ast.h » ('j') | src/checks.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698