Skip to content

Commit 83204c5

Browse files
committed
[V8] Add JSContext initializer with unowned context pointer
1 parent e4a8a95 commit 83204c5

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

Sources/V8API/JSContext.swift

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,31 @@ public class JSContext {
1616
let context: UnsafeMutableRawPointer
1717
var template: UnsafeMutableRawPointer
1818

19+
let unowned: Bool
20+
21+
public init(
22+
isolate: UnsafeMutableRawPointer,
23+
context: UnsafeMutableRawPointer,
24+
template: UnsafeMutableRawPointer)
25+
{
26+
self.unowned = true
27+
self.isolate = isolate
28+
self.context = context
29+
self.template = template
30+
}
31+
1932
public init(isolate: UnsafeMutableRawPointer) {
33+
self.unowned = false
2034
self.isolate = isolate
2135
self.template = CV8.createTemplate(isolate)
2236
self.context = CV8.createContext(isolate, template)
2337
}
2438

2539
deinit {
26-
CV8.disposeTemplate(template)
27-
CV8.disposeContext(context)
40+
if !unowned {
41+
CV8.disposeTemplate(template)
42+
CV8.disposeContext(context)
43+
}
2844
}
2945
}
3046

0 commit comments

Comments
 (0)