12345678910111213141516171819202122232425262728293031 |
- // Copyright 2013 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "gin/per_context_data.h"
- #include "gin/public/context_holder.h"
- #include "gin/public/wrapper_info.h"
- namespace gin {
- PerContextData::PerContextData(ContextHolder* context_holder,
- v8::Local<v8::Context> context)
- : context_holder_(context_holder), runner_(nullptr) {
- context->SetAlignedPointerInEmbedderData(
- int{kPerContextDataStartIndex} + kEmbedderNativeGin, this);
- }
- PerContextData::~PerContextData() {
- v8::HandleScope handle_scope(context_holder_->isolate());
- context_holder_->context()->SetAlignedPointerInEmbedderData(
- int{kPerContextDataStartIndex} + kEmbedderNativeGin, NULL);
- }
- // static
- PerContextData* PerContextData::From(v8::Local<v8::Context> context) {
- return static_cast<PerContextData*>(
- context->GetAlignedPointerFromEmbedderData(kEncodedValueIndex));
- }
- } // namespace gin
|