File tree Expand file tree Collapse file tree 1 file changed +5
-15
lines changed
Sources/_StringProcessing/Regex Expand file tree Collapse file tree 1 file changed +5
-15
lines changed Original file line number Diff line number Diff line change @@ -85,19 +85,16 @@ extension Regex {
85
85
init ( _ value: MEProgram < String > ) { self . value = value }
86
86
}
87
87
88
- private var _loweredProgramStorage : UnsafeMutablePointer < AnyObject ? > = {
89
- let pointer = UnsafeMutablePointer< AnyObject?> . allocate( capacity: 1 )
90
- pointer. initialize ( to: nil )
91
- return pointer
92
- } ( )
88
+ /// Do not use directly - all accesses must go through `loweredProgram`.
89
+ private var _unsafeLoweredProgramStorage : AnyObject ? = nil
93
90
94
91
/// The program for execution with the matching engine.
95
92
var loweredProgram : MEProgram < String > {
96
- if let loweredObject = _stdlib_atomicLoadARCRef ( object : _loweredProgramStorage ) {
97
- return ( loweredObject as! ProgramBox ) . value
93
+ if let loweredObject = _unsafeLoweredProgramStorage as? ProgramBox {
94
+ return loweredObject. value
98
95
}
99
96
let lowered = try ! Compiler ( tree: tree) . emit ( )
100
- _stdlib_atomicInitializeARCRef ( object: _loweredProgramStorage , desired: ProgramBox ( lowered) )
97
+ _stdlib_atomicInitializeARCRef ( object: & _unsafeLoweredProgramStorage , desired: ProgramBox ( lowered) )
101
98
return lowered
102
99
}
103
100
@@ -108,13 +105,6 @@ extension Regex {
108
105
init ( tree: DSLTree ) {
109
106
self . tree = tree
110
107
}
111
-
112
- deinit {
113
- if _loweredProgramStorage. pointee != nil {
114
- _loweredProgramStorage. deinitialize ( count: 1 )
115
- }
116
- _loweredProgramStorage. deallocate ( )
117
- }
118
108
}
119
109
120
110
/// The set of matching options that applies to the start of this regex.
You can’t perform that action at this time.
0 commit comments