File tree Expand file tree Collapse file tree 3 files changed +14
-11
lines changed Expand file tree Collapse file tree 3 files changed +14
-11
lines changed Original file line number Diff line number Diff line change @@ -1072,6 +1072,8 @@ export abstract class BaseTypeGenerator<Type extends RustType> {
1072
1072
}
1073
1073
1074
1074
return `
1075
+ public static var enableDeinitLogging = true
1076
+ public static var suspendFreedom = false
1075
1077
private static var instanceCounter: UInt = 0
1076
1078
internal let instanceNumber: UInt
1077
1079
@@ -1156,16 +1158,18 @@ export abstract class BaseTypeGenerator<Type extends RustType> {
1156
1158
if ( this . hasFreeMethod ( type ) ) {
1157
1159
freeCode = `
1158
1160
deinit {
1159
- if Bindings.suspendFreedom {
1161
+ if Bindings.suspendFreedom || Self.suspendFreedom {
1160
1162
return
1161
1163
}
1162
1164
1163
1165
if !self.dangling {
1164
- Bindings.print("Freeing ${ swiftTypeName } \\(self.instanceNumber).")
1166
+ if Self.enableDeinitLogging {
1167
+ Bindings.print("Freeing ${ swiftTypeName } \\(self.instanceNumber). (Origin: \\(self.instantiationContext))")
1168
+ }
1165
1169
${ freeabilityOverrideInfix }
1166
1170
self.free()
1167
- } else {
1168
- Bindings.print("Not freeing ${ swiftTypeName } \\(self.instanceNumber) due to dangle.")
1171
+ } else if Self.enableDeinitLogging {
1172
+ Bindings.print("Not freeing ${ swiftTypeName } \\(self.instanceNumber) due to dangle. (Origin: \\(self.instantiationContext)) ")
1169
1173
}
1170
1174
}
1171
1175
` ;
Original file line number Diff line number Diff line change @@ -98,9 +98,6 @@ export default class BindingsFileGenerator extends BaseTypeGenerator<GlobalBindi
98
98
internal private(set) var anchors: Set<NativeTypeWrapper> = []
99
99
internal var pointerDebugDescription: String? = nil
100
100
101
- @available(*, unavailable, message: "This variable is only available to subclasses.")
102
- public static var enableDeinitLogging = true
103
-
104
101
init(conflictAvoidingVariableName: UInt, instantiationContext: String) {
105
102
Self.globalInstanceCounter += 1
106
103
self.globalInstanceNumber = Self.globalInstanceCounter
Original file line number Diff line number Diff line change @@ -141,15 +141,17 @@ export default class TraitGenerator extends BaseTypeGenerator<RustTrait> {
141
141
}
142
142
143
143
deinit {
144
- if Bindings.suspendFreedom {
144
+ if Bindings.suspendFreedom || Self.suspendFreedom {
145
145
return
146
146
}
147
147
148
148
if !self.dangling {
149
- Bindings.print("Freeing ${ swiftTypeName } \\(self.instanceNumber).")
149
+ if Self.enableDeinitLogging {
150
+ Bindings.print("Freeing ${ swiftTypeName } \\(self.instanceNumber). (Origin: \\(self.instantiationContext))")
151
+ }
150
152
self.free()
151
- } else {
152
- Bindings.print("Not freeing ${ swiftTypeName } \\(self.instanceNumber) due to dangle.")
153
+ } else if Self.enableDeinitLogging {
154
+ Bindings.print("Not freeing ${ swiftTypeName } \\(self.instanceNumber) due to dangle. (Origin: \\(self.instantiationContext)) ")
153
155
}
154
156
}
155
157
}
You can’t perform that action at this time.
0 commit comments