FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
ClearScript/ClearScript/V8/ClearScriptV8/V8ScriptImpl.cpp at master · orudge/ClearScript · GitHub
orudge
/
ClearScript
Public
forked from
ClearFoundry/ClearScript
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
ClearScript
/
ClearScript
/
V8
/
ClearScriptV8
/
V8ScriptImpl.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
72 lines (54 loc) · 1.79 KB
Breadcrumbs
ClearScript
/
ClearScript
/
V8
/
ClearScriptV8
/
V8ScriptImpl.cpp
Copy path
File metadata and controls
72 lines (54 loc) · 1.79 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//
Copyright (c) Microsoft Corporation. All rights reserved.
//
Licensed under the MIT license.
#
include
"
ClearScriptV8Managed.h
"
namespace
Microsoft
{
namespace
ClearScript
{
namespace
V8
{
//
-------------------------------------------------------------------------
//
V8ScriptImpl implementation
//
-------------------------------------------------------------------------
V8ScriptImpl::V8ScriptImpl
(String^ gcDocumentName, V8ScriptHolder* pHolder):
V8Script
(gcDocumentName),
m_gcLock
(gcnew Object),
m_pspHolder
(
new
SharedPtr<V8ScriptHolder>(pHolder))
{
}
//
-------------------------------------------------------------------------
SharedPtr<V8ScriptHolder>
V8ScriptImpl::GetHolder
()
{
BEGIN_LOCK_SCOPE
(m_gcLock)
if
(m_pspHolder ==
nullptr
)
{
throw
gcnew
ObjectDisposedException
(
ToString
());
}
return
*m_pspHolder;
END_LOCK_SCOPE
}
//
-------------------------------------------------------------------------
V8ScriptImpl::~V8ScriptImpl
()
{
SharedPtr<V8ScriptHolder> spHolder;
BEGIN_LOCK_SCOPE
(m_gcLock)
if
(m_pspHolder !=
nullptr
)
{
//
hold V8 script holder for destruction outside lock scope
spHolder = *m_pspHolder;
delete
m_pspHolder;
m_pspHolder =
nullptr
;
}
END_LOCK_SCOPE
if
(!spHolder.
IsEmpty
())
{
GC::SuppressFinalize
(
this
);
}
}
//
-------------------------------------------------------------------------
V8ScriptImpl::!V8ScriptImpl()
{
if
(m_pspHolder !=
nullptr
)
{
delete
m_pspHolder;
m_pspHolder =
nullptr
;
}
}
}}}
Back
|
FazBrowse Home
|
New Git URL