Skip to content

Commit 7c7cced

Browse files
authored
[ffigen] Remove objc_retain from bindings (#1888)
1 parent 5e48015 commit 7c7cced

File tree

7 files changed

+1527
-1552
lines changed

7 files changed

+1527
-1552
lines changed

pkgs/ffigen/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- Handle dart typedefs in import/export of symbol files.
66
- Add support for blocking ObjC blocks that can be invoked from any thread.
77
- Add support for blocking ObjC protocol methods.
8+
- Remove explicit `objc_retain` calls from the generated bindings.
89

910
## 16.0.0
1011

pkgs/ffigen/lib/src/code_generator/objc_interface.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,8 @@ ${generateAsStub ? '' : _generateMethods(w)}
180180
}
181181

182182
@override
183-
String? generateRetain(String value) => 'objc_retain($value)';
183+
String? generateRetain(String value) =>
184+
'(__bridge id)(__bridge_retained void*)($value)';
184185

185186
@override
186187
void visit(Visitation visitation) => visitation.visitObjCInterface(this);

pkgs/ffigen/lib/src/code_generator/pointer.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class IncompleteArray extends PointerType {
105105

106106
@override
107107
String getNativeType({String varName = ''}) =>
108-
'${child.getNativeType()} $varName[]';
108+
'${child.getNativeType()}* $varName';
109109

110110
@override
111111
String toString() => '$child[]';
@@ -153,7 +153,8 @@ class ObjCObjectPointer extends PointerType {
153153
'${getDartType(w)}($value, retain: $objCRetain, release: true)';
154154

155155
@override
156-
String? generateRetain(String value) => 'objc_retain($value)';
156+
String? generateRetain(String value) =>
157+
'(__bridge id)(__bridge_retained void*)($value)';
157158

158159
@override
159160
bool isSupertypeOf(Type other) {

pkgs/ffigen/lib/src/code_generator/writer.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,6 @@ class Writer {
444444
#error "This file must be compiled with ARC enabled"
445445
#endif
446446
447-
id objc_retain(id);
448447
id objc_retainBlock(id);
449448
''');
450449

0 commit comments

Comments
 (0)