diff --git a/pkgs/objective_c/CHANGELOG.md b/pkgs/objective_c/CHANGELOG.md index 928718d76f..3607b54ccc 100644 --- a/pkgs/objective_c/CHANGELOG.md +++ b/pkgs/objective_c/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.0.1-wip + +- Reduces the changes of duplicate symbols by adding a `DOBJC_` prefix. + ## 4.0.0 - Use ffigen 16.0.0 diff --git a/pkgs/objective_c/ffigen_c.yaml b/pkgs/objective_c/ffigen_c.yaml index d9831533f9..a499dc5b2a 100644 --- a/pkgs/objective_c/ffigen_c.yaml +++ b/pkgs/objective_c/ffigen_c.yaml @@ -20,24 +20,24 @@ functions: - 'sel_getName' - 'protocol_getMethodDescription' - 'protocol_getName' - - 'disposeObjCBlockWithClosure' - - 'isValidBlock' - - 'isValidObject' - 'Dart_InitializeApiDL' - 'newFinalizableHandle' - - 'newBlockFinalizableHandle' - - 'deleteFinalizableHandle' - - 'newFinalizableBool' + - 'DOBJC_.*' leaf: include: - '.*' exclude: - 'objc_msgSend.*' - - 'disposeObjCBlockWithClosure' - - 'newFinalizableHandle' - - 'deleteFinalizableHandle' - - 'newFinalizableBool' + - 'DOBJC_deleteFinalizableHandle' + - 'DOBJC_disposeObjCBlockWithClosure' + - 'DOBJC_newFinalizableBool' + - 'DOBJC_newFinalizableHandle' rename: + 'DOBJC_disposeObjCBlockWithClosure': 'disposeObjCBlockWithClosure' + 'DOBJC_isValidBlock': 'isValidBlock' + 'DOBJC_newFinalizableHandle': 'newFinalizableHandle' + 'DOBJC_deleteFinalizableHandle': 'deleteFinalizableHandle' + 'DOBJC_newFinalizableBool': 'newFinalizableBool' 'sel_registerName': 'registerName' 'sel_getName': 'getName' 'objc_getClass': 'getClass' diff --git a/pkgs/objective_c/ffigen_objc.yaml b/pkgs/objective_c/ffigen_objc.yaml index 472d2d3082..b7a691287f 100644 --- a/pkgs/objective_c/ffigen_objc.yaml +++ b/pkgs/objective_c/ffigen_objc.yaml @@ -24,9 +24,9 @@ external-versions: objc-interfaces: # Keep in sync with ffigen's ObjCBuiltInFunctions.builtInInterfaces. include: - - DartInputStreamAdapter - - DartProxy - - DartProxyBuilder + - DOBJCDartInputStreamAdapter + - DOBJCDartProxy + - DOBJCDartProxyBuilder - NSArray - NSCharacterSet - NSCoder @@ -63,6 +63,10 @@ objc-interfaces: - NSURLHandle - NSValue - Protocol + rename: + 'DOBJCDartInputStreamAdapter': 'DartInputStreamAdapter' + 'DOBJCDartProxy': 'DartProxy' + 'DOBJCDartProxyBuilder': 'DartProxyBuilder' objc-protocols: include: - NSStreamDelegate diff --git a/pkgs/objective_c/lib/src/c_bindings_generated.dart b/pkgs/objective_c/lib/src/c_bindings_generated.dart index 15b471697f..a2fc5f9733 100644 --- a/pkgs/objective_c/lib/src/c_bindings_generated.dart +++ b/pkgs/objective_c/lib/src/c_bindings_generated.dart @@ -20,6 +20,16 @@ library; import 'dart:ffi' as ffi; +@ffi.Native< + ffi.Void Function( + ffi.Pointer< + ffi.NativeFunction)>>, + ffi.Pointer)>(isLeaf: true) +external void DOBJC_runOnMainThread( + ffi.Pointer)>> fn, + ffi.Pointer arg, +); + /// \mainpage Dynamically Linked Dart API /// /// This exposes a subset of symbols from dart_api.h and dart_native_api.h @@ -72,13 +82,15 @@ external ffi.Pointer> copyClassList( ffi.Pointer count, ); -@ffi.Native() +@ffi.Native( + symbol: "DOBJC_deleteFinalizableHandle") external void deleteFinalizableHandle( Dart_FinalizableHandle handle, Object owner, ); -@ffi.Native)>() +@ffi.Native)>( + symbol: "DOBJC_disposeObjCBlockWithClosure") external void disposeObjCBlockWithClosure( ffi.Pointer block, ); @@ -126,7 +138,8 @@ external ffi.Pointer getProtocolName( ffi.Pointer proto, ); -@ffi.Native)>(isLeaf: true) +@ffi.Native)>( + symbol: "DOBJC_isValidBlock", isLeaf: true) external bool isValidBlock( ffi.Pointer block, ); @@ -140,13 +153,15 @@ external void msgSendFpret(); @ffi.Native(symbol: "objc_msgSend_stret") external void msgSendStret(); -@ffi.Native Function(ffi.Handle)>() +@ffi.Native Function(ffi.Handle)>( + symbol: "DOBJC_newFinalizableBool") external ffi.Pointer newFinalizableBool( Object owner, ); @ffi.Native< - Dart_FinalizableHandle Function(ffi.Handle, ffi.Pointer)>() + Dart_FinalizableHandle Function(ffi.Handle, ffi.Pointer)>( + symbol: "DOBJC_newFinalizableHandle") external Dart_FinalizableHandle newFinalizableHandle( Object owner, ffi.Pointer object, diff --git a/pkgs/objective_c/lib/src/objective_c_bindings_generated.dart b/pkgs/objective_c/lib/src/objective_c_bindings_generated.dart index 3fc3c4475f..4a8f27735c 100644 --- a/pkgs/objective_c/lib/src/objective_c_bindings_generated.dart +++ b/pkgs/objective_c/lib/src/objective_c_bindings_generated.dart @@ -93,13 +93,13 @@ class DartInputStreamAdapter extends NSInputStream { /// Returns whether [obj] is an instance of [DartInputStreamAdapter]. static bool isInstance(objc.ObjCObjectBase obj) { - return _objc_msgSend_69e0x1( - obj.ref.pointer, _sel_isKindOfClass_, _class_DartInputStreamAdapter); + return _objc_msgSend_69e0x1(obj.ref.pointer, _sel_isKindOfClass_, + _class_DOBJCDartInputStreamAdapter); } /// inputStreamWithData: static DartInputStreamAdapter? inputStreamWithData_(NSData data) { - final _ret = _objc_msgSend_62nh5j(_class_DartInputStreamAdapter, + final _ret = _objc_msgSend_62nh5j(_class_DOBJCDartInputStreamAdapter, _sel_inputStreamWithData_, data.ref.pointer); return _ret.address == 0 ? null @@ -109,7 +109,7 @@ class DartInputStreamAdapter extends NSInputStream { /// inputStreamWithFileAtPath: static DartInputStreamAdapter? inputStreamWithFileAtPath_(NSString path) { - final _ret = _objc_msgSend_62nh5j(_class_DartInputStreamAdapter, + final _ret = _objc_msgSend_62nh5j(_class_DOBJCDartInputStreamAdapter, _sel_inputStreamWithFileAtPath_, path.ref.pointer); return _ret.address == 0 ? null @@ -122,15 +122,15 @@ class DartInputStreamAdapter extends NSInputStream { /// -1 => The `NSInputStream` has been closed and the port can be closed. /// _ => The number of types being required in a `read:maxLength` call. static DartInputStreamAdapter inputStreamWithPort_(int sendPort) { - final _ret = _objc_msgSend_r25hnf( - _class_DartInputStreamAdapter, _sel_inputStreamWithPort_, sendPort); + final _ret = _objc_msgSend_r25hnf(_class_DOBJCDartInputStreamAdapter, + _sel_inputStreamWithPort_, sendPort); return DartInputStreamAdapter.castFromPointer(_ret, retain: true, release: true); } /// inputStreamWithURL: static DartInputStreamAdapter? inputStreamWithURL_(NSURL url) { - final _ret = _objc_msgSend_62nh5j(_class_DartInputStreamAdapter, + final _ret = _objc_msgSend_62nh5j(_class_DOBJCDartInputStreamAdapter, _sel_inputStreamWithURL_, url.ref.pointer); return _ret.address == 0 ? null @@ -186,14 +186,14 @@ class DartInputStreamAdapter extends NSInputStream { void stream_handleEvent_(NSStream aStream, NSStreamEvent eventCode) { if (!objc.respondsToSelector(this.ref.pointer, _sel_stream_handleEvent_)) { throw objc.UnimplementedOptionalMethodException( - 'DartInputStreamAdapter', 'stream:handleEvent:'); + 'DOBJCDartInputStreamAdapter', 'stream:handleEvent:'); } _objc_msgSend_hglvhy(this.ref.pointer, _sel_stream_handleEvent_, aStream.ref.pointer, eventCode.value); } } -/// DartProxy +/// DOBJCDartProxy class DartProxy extends NSProxy { DartProxy._(ffi.Pointer pointer, {bool retain = false, bool release = false}) @@ -211,19 +211,19 @@ class DartProxy extends NSProxy { /// Returns whether [obj] is an instance of [DartProxy]. static bool isInstance(objc.ObjCObjectBase obj) { return _objc_msgSend_69e0x1( - obj.ref.pointer, _sel_isKindOfClass_, _class_DartProxy); + obj.ref.pointer, _sel_isKindOfClass_, _class_DOBJCDartProxy); } /// alloc static objc.ObjCObjectBase alloc() { - final _ret = _objc_msgSend_1x359cv(_class_DartProxy, _sel_alloc); + final _ret = _objc_msgSend_1x359cv(_class_DOBJCDartProxy, _sel_alloc); return objc.ObjCObjectBase(_ret, retain: false, release: true); } /// newFromBuilder: static DartProxy newFromBuilder_(DartProxyBuilder builder) { final _ret = _objc_msgSend_62nh5j( - _class_DartProxy, _sel_newFromBuilder_, builder.ref.pointer); + _class_DOBJCDartProxy, _sel_newFromBuilder_, builder.ref.pointer); return DartProxy.castFromPointer(_ret, retain: false, release: true); } @@ -273,7 +273,7 @@ class DartProxy extends NSProxy { } } -/// DartProxyBuilder +/// DOBJCDartProxyBuilder class DartProxyBuilder extends NSObject { DartProxyBuilder._(ffi.Pointer pointer, {bool retain = false, bool release = false}) @@ -291,25 +291,26 @@ class DartProxyBuilder extends NSObject { /// Returns whether [obj] is an instance of [DartProxyBuilder]. static bool isInstance(objc.ObjCObjectBase obj) { return _objc_msgSend_69e0x1( - obj.ref.pointer, _sel_isKindOfClass_, _class_DartProxyBuilder); + obj.ref.pointer, _sel_isKindOfClass_, _class_DOBJCDartProxyBuilder); } /// alloc static DartProxyBuilder alloc() { - final _ret = _objc_msgSend_1x359cv(_class_DartProxyBuilder, _sel_alloc); + final _ret = + _objc_msgSend_1x359cv(_class_DOBJCDartProxyBuilder, _sel_alloc); return DartProxyBuilder.castFromPointer(_ret, retain: false, release: true); } /// allocWithZone: static DartProxyBuilder allocWithZone_(ffi.Pointer<_NSZone> zone) { final _ret = _objc_msgSend_hzlb60( - _class_DartProxyBuilder, _sel_allocWithZone_, zone); + _class_DOBJCDartProxyBuilder, _sel_allocWithZone_, zone); return DartProxyBuilder.castFromPointer(_ret, retain: false, release: true); } /// new static DartProxyBuilder new1() { - final _ret = _objc_msgSend_1x359cv(_class_DartProxyBuilder, _sel_new); + final _ret = _objc_msgSend_1x359cv(_class_DOBJCDartProxyBuilder, _sel_new); return DartProxyBuilder.castFromPointer(_ret, retain: false, release: true); } @@ -10826,10 +10827,11 @@ class Protocol extends objc.ObjCObjectBase { final class _NSZone extends ffi.Opaque {} -late final _class_DartInputStreamAdapter = - objc.getClass("DartInputStreamAdapter"); -late final _class_DartProxy = objc.getClass("DartProxy"); -late final _class_DartProxyBuilder = objc.getClass("DartProxyBuilder"); +late final _class_DOBJCDartInputStreamAdapter = + objc.getClass("DOBJCDartInputStreamAdapter"); +late final _class_DOBJCDartProxy = objc.getClass("DOBJCDartProxy"); +late final _class_DOBJCDartProxyBuilder = + objc.getClass("DOBJCDartProxyBuilder"); late final _class_NSArray = objc.getClass("NSArray"); late final _class_NSCharacterSet = objc.getClass("NSCharacterSet"); late final _class_NSCoder = objc.getClass("NSCoder"); diff --git a/pkgs/objective_c/pubspec.yaml b/pkgs/objective_c/pubspec.yaml index 5669f47259..3889e91a41 100644 --- a/pkgs/objective_c/pubspec.yaml +++ b/pkgs/objective_c/pubspec.yaml @@ -4,7 +4,7 @@ name: objective_c description: 'A library to access Objective C from Flutter that acts as a support library for package:ffigen.' -version: 4.0.0 +version: 4.0.1-wip repository: https://github.com/dart-lang/native/tree/main/pkgs/objective_c issue_tracker: https://github.com/dart-lang/native/issues?q=is%3Aissue+is%3Aopen+label%3Apackage%3Aobjective_c diff --git a/pkgs/objective_c/src/input_stream_adapter.h b/pkgs/objective_c/src/input_stream_adapter.h index 77f9e42ce6..6322fb94f9 100644 --- a/pkgs/objective_c/src/input_stream_adapter.h +++ b/pkgs/objective_c/src/input_stream_adapter.h @@ -2,16 +2,13 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -#ifndef INPUT_STREAM_ADAPTER_H_ -#define INPUT_STREAM_ADAPTER_H_ - #include "include/dart_api_dl.h" #import #import /// Helper class to adapt a Dart stream into a `NSInputStream`. -@interface DartInputStreamAdapter : NSInputStream +@interface DOBJCDartInputStreamAdapter : NSInputStream /// Creates the adapter. /// @param sendPort A port to that is will receive two types of messages: @@ -23,5 +20,3 @@ - (void)setDone; - (void)setError:(NSError *)error; @end - -#endif // INPUT_STREAM_ADAPTER_H_ diff --git a/pkgs/objective_c/src/input_stream_adapter.m b/pkgs/objective_c/src/input_stream_adapter.m index 4ccabdfd12..08db429cd9 100644 --- a/pkgs/objective_c/src/input_stream_adapter.m +++ b/pkgs/objective_c/src/input_stream_adapter.m @@ -7,7 +7,7 @@ #import #include -@implementation DartInputStreamAdapter { +@implementation DOBJCDartInputStreamAdapter { Dart_Port _sendPort; NSCondition *_dataCondition; NSMutableData *_data; @@ -18,7 +18,7 @@ @implementation DartInputStreamAdapter { } + (instancetype)inputStreamWithPort:(Dart_Port)sendPort { - DartInputStreamAdapter *stream = [[DartInputStreamAdapter alloc] init]; + DOBJCDartInputStreamAdapter *stream = [[DOBJCDartInputStreamAdapter alloc] init]; if (stream != nil) { stream->_sendPort = sendPort; stream->_dataCondition = [[NSCondition alloc] init]; diff --git a/pkgs/objective_c/src/objective_c.c b/pkgs/objective_c/src/objective_c.c index fb360ad40a..29ccd3244f 100644 --- a/pkgs/objective_c/src/objective_c.c +++ b/pkgs/objective_c/src/objective_c.c @@ -12,11 +12,11 @@ // Dispose helper for ObjC blocks that wrap a Dart closure. For these blocks, // the target is an int ID, and the dispose_port is listening for these IDs. -void disposeObjCBlockWithClosure(ObjCBlockImpl* block) { +void DOBJC_disposeObjCBlockWithClosure(ObjCBlockImpl* block) { Dart_PostInteger_DL(block->dispose_port, (int64_t)block->target); } -bool isValidBlock(ObjCBlockImpl* block) { +bool DOBJC_isValidBlock(ObjCBlockImpl* block) { if (block == NULL) return false; void* isa = block->isa; return isa == &_NSConcreteStackBlock || isa == &_NSConcreteMallocBlock || @@ -24,23 +24,23 @@ bool isValidBlock(ObjCBlockImpl* block) { isa == &_NSConcreteGlobalBlock || isa == &_NSConcreteWeakBlockVariable; } -void finalizeObject(void* isolate_callback_data, void* peer) { +void DOBJC_finalizeObject(void* isolate_callback_data, void* peer) { // objc_release works for Objects and Blocks. - runOnMainThread((void (*)(void*))objc_release, peer); + DOBJC_runOnMainThread((void (*)(void*))objc_release, peer); } -Dart_FinalizableHandle newFinalizableHandle(Dart_Handle owner, +Dart_FinalizableHandle DOBJC_newFinalizableHandle(Dart_Handle owner, ObjCObject* object) { - return Dart_NewFinalizableHandle_DL(owner, object, 0, finalizeObject); + return Dart_NewFinalizableHandle_DL(owner, object, 0, DOBJC_finalizeObject); } -void deleteFinalizableHandle(Dart_FinalizableHandle handle, Dart_Handle owner) { +void DOBJC_deleteFinalizableHandle(Dart_FinalizableHandle handle, Dart_Handle owner) { Dart_DeleteFinalizableHandle_DL(handle, owner); } -void finalizeMalloc(void* isolate_callback_data, void* peer) { free(peer); } +static void finalizeMalloc(void* isolate_callback_data, void* peer) { free(peer); } -bool* newFinalizableBool(Dart_Handle owner) { +bool* DOBJC_newFinalizableBool(Dart_Handle owner) { bool* pointer = (bool*)malloc(1); *pointer = false; Dart_NewFinalizableHandle_DL(owner, pointer, 1, finalizeMalloc); diff --git a/pkgs/objective_c/src/objective_c.h b/pkgs/objective_c/src/objective_c.h index 8f66066b0a..8d64c9ba1c 100644 --- a/pkgs/objective_c/src/objective_c.h +++ b/pkgs/objective_c/src/objective_c.h @@ -9,24 +9,24 @@ #include "objective_c_runtime.h" // Dispose helper for ObjC blocks that wrap a Dart closure. -void disposeObjCBlockWithClosure(ObjCBlockImpl* block); +void DOBJC_disposeObjCBlockWithClosure(ObjCBlockImpl* block); // Returns whether the block is valid and live. The pointer must point to // readable memory, or be null. May (rarely) return false positives. -bool isValidBlock(ObjCBlockImpl* block); +bool DOBJC_isValidBlock(ObjCBlockImpl* block); // Returns a new Dart_FinalizableHandle that will clean up the object when the // Dart owner is garbage collected. -Dart_FinalizableHandle newFinalizableHandle( +Dart_FinalizableHandle DOBJC_newFinalizableHandle( Dart_Handle owner, ObjCObject *object); // Delete a finalizable handle. Doesn't run the finalization callback, so // doesn't clean up the assocated pointer. -void deleteFinalizableHandle(Dart_FinalizableHandle handle, Dart_Handle owner); +void DOBJC_deleteFinalizableHandle(Dart_FinalizableHandle handle, Dart_Handle owner); // Returns a newly allocated bool* (initialized to false) that will be deleted // by a Dart_FinalizableHandle when the owner is garbage collected. -bool* newFinalizableBool(Dart_Handle owner); +bool* DOBJC_newFinalizableBool(Dart_Handle owner); // Runs fn(arg) on the main thread. If runOnMainThread is already running on the // main thread, fn(arg) is invoked synchronously. Otherwise it is dispatched to @@ -35,6 +35,6 @@ bool* newFinalizableBool(Dart_Handle owner); // This assumes that the main thread is executing its queue. If not, #define // NO_MAIN_THREAD_DISPATCH to disable this, and run fn(arg) synchronously. The // flutter runner does execute the main dispatch queue, but the Dart VM doesn't. -void runOnMainThread(void (*fn)(void*), void* arg); +void DOBJC_runOnMainThread(void (*fn)(void*), void* arg); #endif // OBJECTIVE_C_SRC_OBJECTIVE_C_H_ diff --git a/pkgs/objective_c/src/objective_c.m b/pkgs/objective_c/src/objective_c.m index 5cf87fe482..b3256e09f8 100644 --- a/pkgs/objective_c/src/objective_c.m +++ b/pkgs/objective_c/src/objective_c.m @@ -5,7 +5,7 @@ #import #import -void runOnMainThread(void (*fn)(void*), void* arg) { +void DOBJC_runOnMainThread(void (*fn)(void*), void* arg) { #ifdef NO_MAIN_THREAD_DISPATCH fn(arg); #else diff --git a/pkgs/objective_c/src/proxy.h b/pkgs/objective_c/src/proxy.h index adb2955bee..2857172b19 100644 --- a/pkgs/objective_c/src/proxy.h +++ b/pkgs/objective_c/src/proxy.h @@ -7,7 +7,7 @@ #import -@interface DartProxyBuilder : NSObject +@interface DOBJCDartProxyBuilder : NSObject + (instancetype)new; - (instancetype)init; - (void)implementMethod:(SEL) sel @@ -15,9 +15,9 @@ andBlock:(void*)block; @end -@interface DartProxy : NSProxy -+ (instancetype)newFromBuilder:(__strong DartProxyBuilder*)builder; -- (instancetype)initFromBuilder:(__strong DartProxyBuilder*)builder; +@interface DOBJCDartProxy : NSProxy ++ (instancetype)newFromBuilder:(__strong DOBJCDartProxyBuilder*)builder; +- (instancetype)initFromBuilder:(__strong DOBJCDartProxyBuilder*)builder; - (BOOL)respondsToSelector:(SEL)sel; - (NSMethodSignature *)methodSignatureForSelector:(SEL)sel; - (void)forwardInvocation:(__strong NSInvocation *)invocation; diff --git a/pkgs/objective_c/src/proxy.m b/pkgs/objective_c/src/proxy.m index 570ccfa20f..3307f3e280 100644 --- a/pkgs/objective_c/src/proxy.m +++ b/pkgs/objective_c/src/proxy.m @@ -13,14 +13,14 @@ #error "This file must be compiled with ARC enabled" #endif -@interface ProxyMethod : NSObject +@interface DOBJCProxyMethod : NSObject @property(strong) NSMethodSignature *signature; @property(strong) id block; @end -@implementation ProxyMethod +@implementation DOBJCProxyMethod @end -@implementation DartProxyBuilder { +@implementation DOBJCDartProxyBuilder { NSMutableDictionary *methods; } @@ -35,7 +35,7 @@ - (instancetype)init { return self; } -- (void)implement:(SEL)sel withMethod:(ProxyMethod*)m { +- (void)implement:(SEL)sel withMethod:(DOBJCProxyMethod*)m { @synchronized(methods) { [methods setObject:m forKey:[NSValue valueWithPointer:sel]]; } @@ -44,7 +44,7 @@ - (void)implement:(SEL)sel withMethod:(ProxyMethod*)m { - (void)implementMethod:(SEL)sel withSignature:(NSMethodSignature *)signature andBlock:(void*)block { - ProxyMethod *m = [ProxyMethod new]; + DOBJCProxyMethod *m = [DOBJCProxyMethod new]; m.signature = signature; m.block = (__bridge id)block; [self implement:sel withMethod:m]; @@ -55,19 +55,19 @@ - (NSDictionary*)copyMethods NS_RETURNS_RETAINED { } @end -@implementation DartProxy { +@implementation DOBJCDartProxy { NSDictionary *methods; } -- (ProxyMethod*)getMethod:(SEL)sel { +- (DOBJCProxyMethod*)getMethod:(SEL)sel { return [methods objectForKey:[NSValue valueWithPointer:sel]]; } -+ (instancetype)newFromBuilder:(DartProxyBuilder*)builder { ++ (instancetype)newFromBuilder:(DOBJCDartProxyBuilder*)builder { return [[self alloc] initFromBuilder:builder]; } -- (instancetype)initFromBuilder:(DartProxyBuilder*)builder { +- (instancetype)initFromBuilder:(DOBJCDartProxyBuilder*)builder { if (self) { methods = [builder copyMethods]; } @@ -79,13 +79,13 @@ - (BOOL)respondsToSelector:(SEL)sel { } - (NSMethodSignature *)methodSignatureForSelector:(SEL)sel { - ProxyMethod *m = [self getMethod:sel]; + DOBJCProxyMethod *m = [self getMethod:sel]; return m != nil ? m.signature : nil; } - (void)forwardInvocation:(NSInvocation *)invocation { [invocation retainArguments]; - ProxyMethod *m = [self getMethod:invocation.selector]; + DOBJCProxyMethod *m = [self getMethod:invocation.selector]; if (m != nil) { [invocation invokeWithTarget:m.block]; } diff --git a/pkgs/objective_c/test/interface_lists_test.dart b/pkgs/objective_c/test/interface_lists_test.dart index 3f8a73365a..4106978905 100644 --- a/pkgs/objective_c/test/interface_lists_test.dart +++ b/pkgs/objective_c/test/interface_lists_test.dart @@ -24,9 +24,12 @@ void main() { setUpAll(() { final yaml = loadYaml(File('ffigen_objc.yaml').readAsStringSync()) as YamlMap; + final interfaceRenames = + (yaml['objc-interfaces'] as YamlMap)['rename'] as YamlMap; yamlInterfaces = ((yaml['objc-interfaces'] as YamlMap)['include'] as YamlList) - .map((dynamic i) => i as String) + .map( + (dynamic name) => (interfaceRenames[name] ?? name) as String) .toList() ..sort(); final structRenames = (yaml['structs'] as YamlMap)['rename'] as YamlMap; diff --git a/pkgs/objective_c/test/setup.dart b/pkgs/objective_c/test/setup.dart index 95e707bce5..c9dcc83bb7 100644 --- a/pkgs/objective_c/test/setup.dart +++ b/pkgs/objective_c/test/setup.dart @@ -90,10 +90,10 @@ void main(List arguments) { // Sanity check that the dylib was created correctly. final lib = DynamicLibrary.open(outputFile); - lib.lookup('disposeObjCBlockWithClosure'); // objective_c.c - lib.lookup('runOnMainThread'); // objective_c.m + lib.lookup('DOBJC_disposeObjCBlockWithClosure'); // objective_c.c + lib.lookup('DOBJC_runOnMainThread'); // objective_c.m lib.lookup('Dart_InitializeApiDL'); // dart_api_dl.c - lib.lookup('OBJC_CLASS_\$_DartProxy'); // proxy.m + lib.lookup('OBJC_CLASS_\$_DOBJCDartProxy'); // proxy.m // objective_c_bindings_generated.m lib.lookup('_ObjectiveCBindings_wrapListenerBlock_ovsamd'); }