Line data Source code
1 : // Copyright 2013 the V8 project 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.
4 :
5 : #include "src/extensions/free-buffer-extension.h"
6 :
7 : #include "src/base/platform/platform.h"
8 : #include "src/isolate.h"
9 :
10 : namespace v8 {
11 : namespace internal {
12 :
13 :
14 0 : v8::Local<v8::FunctionTemplate> FreeBufferExtension::GetNativeFunctionTemplate(
15 : v8::Isolate* isolate, v8::Local<v8::String> str) {
16 0 : return v8::FunctionTemplate::New(isolate, FreeBufferExtension::FreeBuffer);
17 : }
18 :
19 :
20 0 : void FreeBufferExtension::FreeBuffer(
21 0 : const v8::FunctionCallbackInfo<v8::Value>& args) {
22 : v8::Local<v8::ArrayBuffer> arrayBuffer = args[0].As<v8::ArrayBuffer>();
23 0 : v8::ArrayBuffer::Contents contents = arrayBuffer->Externalize();
24 0 : Isolate* isolate = reinterpret_cast<Isolate*>(args.GetIsolate());
25 : isolate->array_buffer_allocator()->Free(contents.Data(),
26 0 : contents.ByteLength());
27 0 : }
28 :
29 : } // namespace internal
30 178779 : } // namespace v8
|