More TSan v2 suppressions:
[chromium-blink-merge.git] / gin / context_holder.cc
blobfba2a2a8bf088f433e38609b418353af741de51d
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "gin/public/context_holder.h"
7 #include "base/logging.h"
8 #include "gin/per_context_data.h"
10 namespace gin {
12 ContextHolder::ContextHolder(v8::Isolate* isolate)
13 : isolate_(isolate) {
16 ContextHolder::~ContextHolder() {
17 v8::HandleScope handle_scope(isolate());
18 v8::Handle<v8::Context> context = this->context();
20 data_->Detach(context);
21 data_.reset();
24 void ContextHolder::SetContext(v8::Handle<v8::Context> context) {
25 DCHECK(context_.IsEmpty());
26 context_.Reset(isolate_, context);
27 data_.reset(new PerContextData(context));
30 } // namespace gin