diff --git a/RNTester/RNTesterUnitTests/RCTMethodArgumentTests.m b/RNTester/RNTesterUnitTests/RCTMethodArgumentTests.m index 4f6341034..79c8db686 100644 --- a/RNTester/RNTesterUnitTests/RCTMethodArgumentTests.m +++ b/RNTester/RNTesterUnitTests/RCTMethodArgumentTests.m @@ -87,6 +87,16 @@ extern SEL RCTParseMethodSignature(const char *methodSignature, NSArray **argTyp XCTAssertEqualObjects(((RCTMethodArgument *)arguments[2]).type, @"id"); } +- (void)testNamespacedCxxStruct +{ + NSArray *arguments; + const char *methodSignature = "foo:(foo::type &)foo"; + SEL selector = RCTParseMethodSignature(methodSignature, &arguments); + XCTAssertEqualObjects(NSStringFromSelector(selector), @"foo:"); + XCTAssertEqual(arguments.count, (NSUInteger)1); + XCTAssertEqualObjects(((RCTMethodArgument *)arguments[0]).type, @"foo::type"); +} + - (void)testAttributes { NSArray *arguments; diff --git a/React/Base/RCTCxxConvert.h b/React/Base/RCTCxxConvert.h new file mode 100644 index 000000000..c7c063ffc --- /dev/null +++ b/React/Base/RCTCxxConvert.h @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import + +/** + * This class provides a collection of conversion functions for mapping + * JSON objects to cxx types. Extensible via categories. + * Convert methods are expected to return cxx objects wraped in RCTManagedPointer. + */ + +@interface RCTCxxConvert : NSObject + +@end diff --git a/React/Base/RCTCxxConvert.m b/React/Base/RCTCxxConvert.m new file mode 100644 index 000000000..5b65cdca7 --- /dev/null +++ b/React/Base/RCTCxxConvert.m @@ -0,0 +1,14 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import "RCTCxxConvert.h" + +@implementation RCTCxxConvert + +@end diff --git a/React/Base/RCTManagedPointer.h b/React/Base/RCTManagedPointer.h new file mode 100644 index 000000000..296689d32 --- /dev/null +++ b/React/Base/RCTManagedPointer.h @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#include + +#import + +/** + * Type erased wrapper over any cxx value that can be passed as an argument + * to native method. + */ + +@interface RCTManagedPointer: NSObject + +@property (nonatomic, readonly) void *voidPointer; + +- (instancetype)initWithPointer:(std::shared_ptr)pointer; + +@end + +namespace RCT { + template + RCTManagedPointer *managedPointer(P initializer) + { + auto ptr = std::shared_ptr(new T((NSDictionary *)initializer)); + return [[RCTManagedPointer alloc] initWithPointer:std::move(ptr)]; + } +} diff --git a/React/Base/RCTManagedPointer.mm b/React/Base/RCTManagedPointer.mm new file mode 100644 index 000000000..a00a6a982 --- /dev/null +++ b/React/Base/RCTManagedPointer.mm @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import "RCTManagedPointer.h" + +@implementation RCTManagedPointer { + std::shared_ptr _pointer; +} + +- (instancetype)initWithPointer:(std::shared_ptr)pointer { + if (self = [super init]) { + _pointer = std::move(pointer); + } + return self; +} + +- (void *)voidPointer { + return _pointer.get(); +} + +@end diff --git a/React/Base/RCTModuleMethod.m b/React/Base/RCTModuleMethod.mm similarity index 94% rename from React/Base/RCTModuleMethod.m rename to React/Base/RCTModuleMethod.mm index 05871ca6e..1309db17b 100644 --- a/React/Base/RCTModuleMethod.m +++ b/React/Base/RCTModuleMethod.mm @@ -15,7 +15,9 @@ #import "RCTBridge+Private.h" #import "RCTBridge.h" #import "RCTConvert.h" +#import "RCTCxxConvert.h" #import "RCTLog.h" +#import "RCTManagedPointer.h" #import "RCTParserUtils.h" #import "RCTProfile.h" #import "RCTUtils.h" @@ -60,12 +62,14 @@ static void RCTLogArgumentError(RCTModuleMethod *method, NSUInteger index, RCT_NOT_IMPLEMENTED(- (instancetype)init) +RCT_EXTERN_C_BEGIN + // returns YES if the selector ends in a colon (indicating that there is at // least one argument, and maybe more selector parts) or NO if it doesn't. static BOOL RCTParseSelectorPart(const char **input, NSMutableString *selector) { NSString *selectorPart; - if (RCTParseIdentifier(input, &selectorPart)) { + if (RCTParseSelectorIdentifier(input, &selectorPart)) { [selector appendString:selectorPart]; } RCTSkipWhitespace(input); @@ -157,7 +161,7 @@ SEL RCTParseMethodSignature(const char *input, NSArray **ar } // Argument name - RCTParseIdentifier(&input, NULL); + RCTParseArgumentIdentifier(&input, NULL); RCTSkipWhitespace(&input); } @@ -165,6 +169,8 @@ SEL RCTParseMethodSignature(const char *input, NSArray **ar return NSSelectorFromString(selector); } +RCT_EXTERN_C_END + - (instancetype)initWithExportedMethod:(const RCTMethodInfo *)exportedMethod moduleClass:(Class)moduleClass { @@ -211,7 +217,7 @@ SEL RCTParseMethodSignature(const char *input, NSArray **ar #define __PRIMITIVE_CASE(_type, _nullable) { \ isNullableType = _nullable; \ - _type (*convert)(id, SEL, id) = (typeof(convert))objc_msgSend; \ + _type (*convert)(id, SEL, id) = (__typeof__(convert))objc_msgSend; \ [argumentBlocks addObject:^(__unused RCTBridge *bridge, NSUInteger index, id json) { \ _type value = convert([RCTConvert class], selector, json); \ [invocation setArgument:&value atIndex:(index) + 2]; \ @@ -274,7 +280,7 @@ SEL RCTParseMethodSignature(const char *input, NSArray **ar case _C_ID: { isNullableType = YES; - id (*convert)(id, SEL, id) = (typeof(convert))objc_msgSend; + id (*convert)(id, SEL, id) = (__typeof__(convert))objc_msgSend; RCT_RETAINED_ARG_BLOCK( id value = convert([RCTConvert class], selector, json); ); @@ -300,7 +306,7 @@ SEL RCTParseMethodSignature(const char *input, NSArray **ar } default: { - static const char *blockType = @encode(typeof(^{})); + static const char *blockType = @encode(__typeof__(^{})); if (!strcmp(objcType, blockType)) { BLOCK_CASE((NSArray *args), { [bridge enqueueCallback:json args:args]; @@ -334,6 +340,22 @@ SEL RCTParseMethodSignature(const char *input, NSArray **ar NSDictionary *errorJSON = RCTJSErrorFromCodeMessageAndNSError(code, message, error); [bridge enqueueCallback:json args:@[errorJSON]]; }); + } else if ([typeName hasPrefix:@"JS::"]) { + NSString *selectorNameForCxxType = + [[typeName stringByReplacingOccurrencesOfString:@"::" withString:@"_"] + stringByAppendingString:@":"]; + selector = NSSelectorFromString(selectorNameForCxxType); + + [argumentBlocks addObject:^(__unused RCTBridge *bridge, NSUInteger index, id json) { + RCTManagedPointer *(*convert)(id, SEL, id) = (__typeof__(convert))objc_msgSend; + RCTManagedPointer *box = convert([RCTCxxConvert class], selector, json); + + void *pointer = box.voidPointer; + [invocation setArgument:&pointer atIndex:index + 2]; + [retainedObjects addObject:box]; + + return YES; + }]; } else { // Unknown argument type RCTLogError(@"Unknown argument type '%@' in method %@. Extend RCTConvert to support this type.", diff --git a/React/Base/RCTParserUtils.h b/React/Base/RCTParserUtils.h index cda4e68db..1dff0d5a8 100644 --- a/React/Base/RCTParserUtils.h +++ b/React/Base/RCTParserUtils.h @@ -19,7 +19,8 @@ RCT_EXTERN BOOL RCTReadChar(const char **input, char c); RCT_EXTERN BOOL RCTReadString(const char **input, const char *string); RCT_EXTERN void RCTSkipWhitespace(const char **input); -RCT_EXTERN BOOL RCTParseIdentifier(const char **input, NSString **string); +RCT_EXTERN BOOL RCTParseSelectorIdentifier(const char **input, NSString **string); +RCT_EXTERN BOOL RCTParseArgumentIdentifier(const char **input, NSString **string); /** * Parse an Objective-C type into a form that can be used by RCTConvert. diff --git a/React/Base/RCTParserUtils.m b/React/Base/RCTParserUtils.m index 5e9182a5f..138fdf744 100644 --- a/React/Base/RCTParserUtils.m +++ b/React/Base/RCTParserUtils.m @@ -51,7 +51,32 @@ static BOOL RCTIsIdentifierTail(const char c) return isalnum(c) || c == '_'; } -BOOL RCTParseIdentifier(const char **input, NSString **string) +BOOL RCTParseArgumentIdentifier(const char **input, NSString **string) +{ + const char *start = *input; + + do { + if (!RCTIsIdentifierHead(**input)) { + return NO; + } + (*input)++; + + while (RCTIsIdentifierTail(**input)) { + (*input)++; + } + + // allow namespace resolution operator + } while (RCTReadString(input, "::")); + + if (string) { + *string = [[NSString alloc] initWithBytes:start + length:(NSInteger)(*input - start) + encoding:NSASCIIStringEncoding]; + } + return YES; +} + +BOOL RCTParseSelectorIdentifier(const char **input, NSString **string) { const char *start = *input; if (!RCTIsIdentifierHead(**input)) { @@ -83,7 +108,7 @@ static BOOL RCTIsCollectionType(NSString *type) NSString *RCTParseType(const char **input) { NSString *type; - RCTParseIdentifier(input, &type); + RCTParseArgumentIdentifier(input, &type); RCTSkipWhitespace(input); if (RCTReadChar(input, '<')) { RCTSkipWhitespace(input); diff --git a/React/React.xcodeproj/project.pbxproj b/React/React.xcodeproj/project.pbxproj index 5cd7e7eac..04af6ee52 100644 --- a/React/React.xcodeproj/project.pbxproj +++ b/React/React.xcodeproj/project.pbxproj @@ -194,7 +194,6 @@ 1450FF871BCFF28A00208362 /* RCTProfileTrampoline-arm.S in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF821BCFF28A00208362 /* RCTProfileTrampoline-arm.S */; }; 1450FF881BCFF28A00208362 /* RCTProfileTrampoline-arm64.S in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF831BCFF28A00208362 /* RCTProfileTrampoline-arm64.S */; }; 1450FF8A1BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF851BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S */; }; - 14C2CA711B3AC63800E6CBB2 /* RCTModuleMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */; }; 14C2CA741B3AC64300E6CBB2 /* RCTModuleData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA731B3AC64300E6CBB2 /* RCTModuleData.mm */; }; 14C2CA761B3AC64F00E6CBB2 /* RCTFrameUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA751B3AC64F00E6CBB2 /* RCTFrameUpdate.m */; }; 14F3620D1AABD06A001CE568 /* RCTSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 14F362081AABD06A001CE568 /* RCTSwitch.m */; }; @@ -277,7 +276,6 @@ 2D3B5E9F1D9B08AF00451313 /* RCTKeyCommands.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A1F71D1A75392D00D3D453 /* RCTKeyCommands.m */; }; 2D3B5EA01D9B08B200451313 /* RCTLog.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA4E1A601E3B00E9B192 /* RCTLog.mm */; }; 2D3B5EA11D9B08B600451313 /* RCTModuleData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA731B3AC64300E6CBB2 /* RCTModuleData.mm */; }; - 2D3B5EA21D9B08BA00451313 /* RCTModuleMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */; }; 2D3B5EA31D9B08BE00451313 /* RCTParserUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A6E20D1C19AA0C00845B82 /* RCTParserUtils.m */; }; 2D3B5EA41D9B08C200451313 /* RCTPerformanceLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 142014171B32094000CC17BA /* RCTPerformanceLogger.m */; }; 2D3B5EA51D9B08C700451313 /* RCTRootView.m in Sources */ = {isa = PBXBuildFile; fileRef = 830A229D1A66C68A008503DA /* RCTRootView.m */; }; @@ -1077,12 +1075,22 @@ AC70D2E91DE489E4002E6351 /* RCTJavaScriptLoader.mm in Sources */ = {isa = PBXBuildFile; fileRef = AC70D2E81DE489E4002E6351 /* RCTJavaScriptLoader.mm */; }; B233E6EA1D2D845D00BC68BA /* RCTI18nManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B233E6E91D2D845D00BC68BA /* RCTI18nManager.m */; }; B95154321D1B34B200FE7B80 /* RCTActivityIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = B95154311D1B34B200FE7B80 /* RCTActivityIndicatorView.m */; }; + C60128AB1F3D1258009DF9FF /* RCTCxxConvert.h in Headers */ = {isa = PBXBuildFile; fileRef = C60128A91F3D1258009DF9FF /* RCTCxxConvert.h */; }; + C60128AC1F3D1258009DF9FF /* RCTCxxConvert.h in Headers */ = {isa = PBXBuildFile; fileRef = C60128A91F3D1258009DF9FF /* RCTCxxConvert.h */; }; + C60128AD1F3D1258009DF9FF /* RCTCxxConvert.m in Sources */ = {isa = PBXBuildFile; fileRef = C60128AA1F3D1258009DF9FF /* RCTCxxConvert.m */; }; + C60128AE1F3D1258009DF9FF /* RCTCxxConvert.m in Sources */ = {isa = PBXBuildFile; fileRef = C60128AA1F3D1258009DF9FF /* RCTCxxConvert.m */; }; + C606692E1F3CC60500E67165 /* RCTModuleMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = C606692D1F3CC60500E67165 /* RCTModuleMethod.mm */; }; + C606692F1F3CC60500E67165 /* RCTModuleMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = C606692D1F3CC60500E67165 /* RCTModuleMethod.mm */; }; + C60669361F3CCF1B00E67165 /* RCTManagedPointer.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669351F3CCF1B00E67165 /* RCTManagedPointer.mm */; }; + C60669371F3CCF1B00E67165 /* RCTManagedPointer.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669351F3CCF1B00E67165 /* RCTManagedPointer.mm */; }; C6194AAC1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AA91EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h */; }; C6194AAD1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AA91EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h */; }; C6194AAE1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C6194AAA1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m */; }; C6194AAF1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C6194AAA1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m */; }; C6194AB01EF156280034D062 /* RCTPackagerConnectionConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AAB1EF156280034D062 /* RCTPackagerConnectionConfig.h */; }; C6194AB11EF156280034D062 /* RCTPackagerConnectionConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AAB1EF156280034D062 /* RCTPackagerConnectionConfig.h */; }; + C654505E1F3BD9280090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C654505D1F3BD9280090799B /* RCTManagedPointer.h */; }; + C654505F1F3BD9280090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C654505D1F3BD9280090799B /* RCTManagedPointer.h */; }; C6827DF61EF17CCC00D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; }; C6827DF71EF17CCC00D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; }; C6827DFB1EF1800E00D66BEF /* RCTJSEnvironment.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; }; @@ -1816,7 +1824,6 @@ 14BF717F1C04793D00C97D0C /* RCTProfileTrampoline-i386.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "RCTProfileTrampoline-i386.S"; sourceTree = ""; }; 14BF71811C04795500C97D0C /* RCTMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTMacros.h; sourceTree = ""; }; 14C2CA6F1B3AC63800E6CBB2 /* RCTModuleMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTModuleMethod.h; sourceTree = ""; }; - 14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTModuleMethod.m; sourceTree = ""; }; 14C2CA721B3AC64300E6CBB2 /* RCTModuleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTModuleData.h; sourceTree = ""; }; 14C2CA731B3AC64300E6CBB2 /* RCTModuleData.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTModuleData.mm; sourceTree = ""; }; 14C2CA751B3AC64F00E6CBB2 /* RCTFrameUpdate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTFrameUpdate.m; sourceTree = ""; }; @@ -2015,9 +2022,14 @@ B233E6E91D2D845D00BC68BA /* RCTI18nManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTI18nManager.m; sourceTree = ""; }; B95154301D1B34B200FE7B80 /* RCTActivityIndicatorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTActivityIndicatorView.h; sourceTree = ""; }; B95154311D1B34B200FE7B80 /* RCTActivityIndicatorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTActivityIndicatorView.m; sourceTree = ""; }; + C60128A91F3D1258009DF9FF /* RCTCxxConvert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTCxxConvert.h; sourceTree = ""; }; + C60128AA1F3D1258009DF9FF /* RCTCxxConvert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTCxxConvert.m; sourceTree = ""; }; + C606692D1F3CC60500E67165 /* RCTModuleMethod.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTModuleMethod.mm; sourceTree = ""; }; + C60669351F3CCF1B00E67165 /* RCTManagedPointer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTManagedPointer.mm; sourceTree = ""; }; C6194AA91EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnectionBridgeConfig.h; sourceTree = ""; }; C6194AAA1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPackagerConnectionBridgeConfig.m; sourceTree = ""; }; C6194AAB1EF156280034D062 /* RCTPackagerConnectionConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnectionConfig.h; sourceTree = ""; }; + C654505D1F3BD9280090799B /* RCTManagedPointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTManagedPointer.h; sourceTree = ""; }; C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJSEnvironment.h; sourceTree = ""; }; CF2731BE1E7B8DE40044CA4F /* RCTDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDeviceInfo.h; sourceTree = ""; }; CF2731BF1E7B8DE40044CA4F /* RCTDeviceInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDeviceInfo.m; sourceTree = ""; }; @@ -2576,6 +2588,8 @@ 68EFE4ED1CF6EB3900A1DE13 /* RCTBundleURLProvider.m */, 83CBBACA1A6023D300E9B192 /* RCTConvert.h */, 83CBBACB1A6023D300E9B192 /* RCTConvert.m */, + C60128A91F3D1258009DF9FF /* RCTCxxConvert.h */, + C60128AA1F3D1258009DF9FF /* RCTCxxConvert.m */, 13AF1F851AE6E777005F5298 /* RCTDefines.h */, 3D1E68D81CABD13900DD7465 /* RCTDisplayLink.h */, 3D1E68D91CABD13900DD7465 /* RCTDisplayLink.m */, @@ -2601,10 +2615,12 @@ 13A1F71D1A75392D00D3D453 /* RCTKeyCommands.m */, 83CBBA4D1A601E3B00E9B192 /* RCTLog.h */, 83CBBA4E1A601E3B00E9B192 /* RCTLog.mm */, + C654505D1F3BD9280090799B /* RCTManagedPointer.h */, + C60669351F3CCF1B00E67165 /* RCTManagedPointer.mm */, 14C2CA721B3AC64300E6CBB2 /* RCTModuleData.h */, 14C2CA731B3AC64300E6CBB2 /* RCTModuleData.mm */, 14C2CA6F1B3AC63800E6CBB2 /* RCTModuleMethod.h */, - 14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */, + C606692D1F3CC60500E67165 /* RCTModuleMethod.mm */, 006FC4121D9B20820057AAAD /* RCTMultipartDataTask.h */, 006FC4131D9B20820057AAAD /* RCTMultipartDataTask.m */, 001BFCCE1D8381DE008E587E /* RCTMultipartStreamReader.h */, @@ -2733,6 +2749,7 @@ 59FBEFB51E46D91C0095D885 /* RCTScrollContentViewManager.h in Headers */, 3D302F241DF828F800D6DDAE /* RCTImageLoader.h in Headers */, 3D302F251DF828F800D6DDAE /* RCTImageStoreManager.h in Headers */, + C60128AC1F3D1258009DF9FF /* RCTCxxConvert.h in Headers */, 3D302F261DF828F800D6DDAE /* RCTResizeMode.h in Headers */, 3D302F271DF828F800D6DDAE /* RCTLinkingManager.h in Headers */, 3D7BFD161EA8E351008DFB7A /* RCTPackagerClient.h in Headers */, @@ -2839,6 +2856,7 @@ 657734941EE8356100A0E9EA /* RCTInspectorPackagerConnection.h in Headers */, 3D302F851DF828F800D6DDAE /* RCTProgressViewManager.h in Headers */, 3D302F861DF828F800D6DDAE /* RCTRefreshControl.h in Headers */, + C654505F1F3BD9280090799B /* RCTManagedPointer.h in Headers */, 3D302F871DF828F800D6DDAE /* RCTRefreshControlManager.h in Headers */, A2440AA41DF8D865006E7BFC /* RCTReloadCommand.h in Headers */, 3D302F881DF828F800D6DDAE /* RCTRootShadowView.h in Headers */, @@ -3006,6 +3024,7 @@ buildActionMask = 2147483647; files = ( 3D80DA191DF820620028D040 /* RCTImageLoader.h in Headers */, + C654505E1F3BD9280090799B /* RCTManagedPointer.h in Headers */, 13134C941E296B2A00B9F3CB /* RCTObjcExecutor.h in Headers */, 3D80DA1A1DF820620028D040 /* RCTImageStoreManager.h in Headers */, 130443A11E3FEAA900D93A67 /* RCTFollyConvert.h in Headers */, @@ -3100,6 +3119,7 @@ 3D80DA611DF820620028D040 /* RCTAnimationType.h in Headers */, 3D0E378A1F1CC40000DCAC9F /* RCTWebSocketModule.h in Headers */, 3D80DA621DF820620028D040 /* RCTAutoInsetsProtocol.h in Headers */, + C60128AB1F3D1258009DF9FF /* RCTCxxConvert.h in Headers */, 3D80DA631DF820620028D040 /* RCTBorderDrawing.h in Headers */, 3D80DA641DF820620028D040 /* RCTBorderStyle.h in Headers */, 3D80DA651DF820620028D040 /* RCTComponent.h in Headers */, @@ -3604,7 +3624,6 @@ 657734931EE8356100A0E9EA /* RCTInspector.mm in Sources */, 59EB6DBE1EBD6FC90072A5E7 /* RCTUIManagerObserverCoordinator.m in Sources */, 2D3B5E971D9B089000451313 /* RCTBridge.m in Sources */, - 2D3B5EA21D9B08BA00451313 /* RCTModuleMethod.m in Sources */, 2D3B5E9B1D9B08A000451313 /* RCTFrameUpdate.m in Sources */, 2D3B5EE41D9B09BB00451313 /* RCTSegmentedControlManager.m in Sources */, 13134C9F1E296B2A00B9F3CB /* RCTCxxModule.mm in Sources */, @@ -3618,6 +3637,7 @@ 2D3B5EAF1D9B08FB00451313 /* RCTAccessibilityManager.m in Sources */, 2D3B5EF11D9B09E700451313 /* UIView+React.m in Sources */, 2D3B5E931D9B087300451313 /* RCTErrorInfo.m in Sources */, + C60669371F3CCF1B00E67165 /* RCTManagedPointer.mm in Sources */, 2D3B5EE01D9B09AD00451313 /* RCTRootShadowView.m in Sources */, 2D3B5EBA1D9B092100451313 /* RCTI18nUtil.m in Sources */, 2D3B5EB41D9B090A00451313 /* RCTDevLoadingView.m in Sources */, @@ -3634,6 +3654,7 @@ 2D3B5EB61D9B091400451313 /* RCTExceptionsManager.m in Sources */, 2D3B5EEB1D9B09D000451313 /* RCTTabBarItem.m in Sources */, 2D3B5ED41D9B097D00451313 /* RCTModalHostView.m in Sources */, + C606692F1F3CC60500E67165 /* RCTModuleMethod.mm in Sources */, 2D3B5E9F1D9B08AF00451313 /* RCTKeyCommands.m in Sources */, 2D3B5EA51D9B08C700451313 /* RCTRootView.m in Sources */, 13134C871E296B2A00B9F3CB /* RCTCxxBridge.mm in Sources */, @@ -3683,6 +3704,7 @@ 3D7BFD281EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm in Sources */, 2D3B5EBB1D9B092300451313 /* RCTI18nManager.m in Sources */, 2D3B5EBE1D9B092D00451313 /* RCTUIManager.m in Sources */, + C60128AE1F3D1258009DF9FF /* RCTCxxConvert.m in Sources */, 2D3B5EDD1D9B09A300451313 /* RCTProgressViewManager.m in Sources */, 2D3B5ED71D9B098700451313 /* RCTNavigator.m in Sources */, 2D3B5EDA1D9B099100451313 /* RCTNavItemManager.m in Sources */, @@ -3853,9 +3875,9 @@ 13A0C28A1B74F71200B29F6F /* RCTDevMenu.m in Sources */, 3D7BFD271EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm in Sources */, 13BCE8091C99CB9D00DD7AAD /* RCTRootShadowView.m in Sources */, - 14C2CA711B3AC63800E6CBB2 /* RCTModuleMethod.m in Sources */, 006FC4141D9B20820057AAAD /* RCTMultipartDataTask.m in Sources */, 13CC8A821B17642100940AE7 /* RCTBorderDrawing.m in Sources */, + C60128AD1F3D1258009DF9FF /* RCTCxxConvert.m in Sources */, 83CBBA511A601E3B00E9B192 /* RCTAssert.m in Sources */, 59EB6DBD1EBD6FC90072A5E7 /* RCTUIManagerObserverCoordinator.m in Sources */, 13AF20451AE707F9005F5298 /* RCTSlider.m in Sources */, @@ -3875,6 +3897,7 @@ 13BB3D021BECD54500932C10 /* RCTImageSource.m in Sources */, 13134CA21E296B2A00B9F3CB /* RCTCxxUtils.mm in Sources */, 58C571C11AA56C1900CDF9C8 /* RCTDatePickerManager.m in Sources */, + C606692E1F3CC60500E67165 /* RCTModuleMethod.mm in Sources */, 1450FF8A1BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S in Sources */, 13D9FEEB1CDCCECF00158BD7 /* RCTEventEmitter.m in Sources */, AC70D2E91DE489E4002E6351 /* RCTJavaScriptLoader.mm in Sources */, @@ -3887,6 +3910,7 @@ 13B080061A6947C200A75B9A /* RCTScrollViewManager.m in Sources */, 137327EA1AA5CF210034F82E /* RCTTabBarManager.m in Sources */, 369123E11DDC75850095B341 /* RCTJSCSamplingProfiler.m in Sources */, + C60669361F3CCF1B00E67165 /* RCTManagedPointer.mm in Sources */, 13B080261A694A8400A75B9A /* RCTWrapperViewController.m in Sources */, 13B080051A6947C200A75B9A /* RCTScrollView.m in Sources */, A2440AA31DF8D854006E7BFC /* RCTReloadCommand.m in Sources */, diff --git a/React/ReactLegacy.xcodeproj/project.pbxproj b/React/ReactLegacy.xcodeproj/project.pbxproj index 2ba1d6fa5..451e3a7ad 100644 --- a/React/ReactLegacy.xcodeproj/project.pbxproj +++ b/React/ReactLegacy.xcodeproj/project.pbxproj @@ -68,7 +68,6 @@ 1450FF871BCFF28A00208362 /* RCTProfileTrampoline-arm.S in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF821BCFF28A00208362 /* RCTProfileTrampoline-arm.S */; }; 1450FF881BCFF28A00208362 /* RCTProfileTrampoline-arm64.S in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF831BCFF28A00208362 /* RCTProfileTrampoline-arm64.S */; }; 1450FF8A1BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S in Sources */ = {isa = PBXBuildFile; fileRef = 1450FF851BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S */; }; - 14C2CA711B3AC63800E6CBB2 /* RCTModuleMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */; }; 14C2CA741B3AC64300E6CBB2 /* RCTModuleData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA731B3AC64300E6CBB2 /* RCTModuleData.mm */; }; 14C2CA761B3AC64F00E6CBB2 /* RCTFrameUpdate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA751B3AC64F00E6CBB2 /* RCTFrameUpdate.m */; }; 14C2CA781B3ACB0400E6CBB2 /* RCTBatchedBridge.mm in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA771B3ACB0400E6CBB2 /* RCTBatchedBridge.mm */; }; @@ -97,7 +96,6 @@ 2D3B5E9F1D9B08AF00451313 /* RCTKeyCommands.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A1F71D1A75392D00D3D453 /* RCTKeyCommands.m */; }; 2D3B5EA01D9B08B200451313 /* RCTLog.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA4E1A601E3B00E9B192 /* RCTLog.mm */; }; 2D3B5EA11D9B08B600451313 /* RCTModuleData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA731B3AC64300E6CBB2 /* RCTModuleData.mm */; }; - 2D3B5EA21D9B08BA00451313 /* RCTModuleMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */; }; 2D3B5EA31D9B08BE00451313 /* RCTParserUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A6E20D1C19AA0C00845B82 /* RCTParserUtils.m */; }; 2D3B5EA41D9B08C200451313 /* RCTPerformanceLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 142014171B32094000CC17BA /* RCTPerformanceLogger.m */; }; 2D3B5EA51D9B08C700451313 /* RCTRootView.m in Sources */ = {isa = PBXBuildFile; fileRef = 830A229D1A66C68A008503DA /* RCTRootView.m */; }; @@ -761,12 +759,22 @@ B50558421E43E14000F71A00 /* RCTDevSettings.mm in Sources */ = {isa = PBXBuildFile; fileRef = B505583D1E43DFB900F71A00 /* RCTDevSettings.mm */; }; B50558431E43E64600F71A00 /* RCTDevSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = B505583C1E43DFB900F71A00 /* RCTDevSettings.h */; }; B95154321D1B34B200FE7B80 /* RCTActivityIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = B95154311D1B34B200FE7B80 /* RCTActivityIndicatorView.m */; }; + C60128B11F3D128C009DF9FF /* RCTCxxConvert.h in Headers */ = {isa = PBXBuildFile; fileRef = C60128AF1F3D128C009DF9FF /* RCTCxxConvert.h */; }; + C60128B21F3D128C009DF9FF /* RCTCxxConvert.h in Headers */ = {isa = PBXBuildFile; fileRef = C60128AF1F3D128C009DF9FF /* RCTCxxConvert.h */; }; + C60128B31F3D128C009DF9FF /* RCTCxxConvert.m in Sources */ = {isa = PBXBuildFile; fileRef = C60128B01F3D128C009DF9FF /* RCTCxxConvert.m */; }; + C60128B41F3D128C009DF9FF /* RCTCxxConvert.m in Sources */ = {isa = PBXBuildFile; fileRef = C60128B01F3D128C009DF9FF /* RCTCxxConvert.m */; }; + C60669311F3CC7BD00E67165 /* RCTModuleMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669301F3CC7BD00E67165 /* RCTModuleMethod.mm */; }; + C60669321F3CC7BD00E67165 /* RCTModuleMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669301F3CC7BD00E67165 /* RCTModuleMethod.mm */; }; + C60669391F3CCF3F00E67165 /* RCTManagedPointer.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669381F3CCF3F00E67165 /* RCTManagedPointer.mm */; }; + C606693A1F3CCF3F00E67165 /* RCTManagedPointer.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669381F3CCF3F00E67165 /* RCTManagedPointer.mm */; }; C6194AB51EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AB21EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h */; }; C6194AB61EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AB21EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h */; }; C6194AB71EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C6194AB31EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m */; }; C6194AB81EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C6194AB31EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m */; }; C6194AB91EF1569C0034D062 /* RCTPackagerConnectionConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AB41EF1569C0034D062 /* RCTPackagerConnectionConfig.h */; }; C6194ABA1EF1569C0034D062 /* RCTPackagerConnectionConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AB41EF1569C0034D062 /* RCTPackagerConnectionConfig.h */; }; + C65450611F3BD94C0090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C65450601F3BD94C0090799B /* RCTManagedPointer.h */; }; + C65450621F3BD94C0090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C65450601F3BD94C0090799B /* RCTManagedPointer.h */; }; C6827DF91EF17DC100D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */; }; C6827DFA1EF17DC100D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */; }; C6827DFD1EF1803F00D66BEF /* RCTJSEnvironment.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */; }; @@ -1289,7 +1297,6 @@ 14BF717F1C04793D00C97D0C /* RCTProfileTrampoline-i386.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "RCTProfileTrampoline-i386.S"; sourceTree = ""; }; 14BF71811C04795500C97D0C /* RCTMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTMacros.h; sourceTree = ""; }; 14C2CA6F1B3AC63800E6CBB2 /* RCTModuleMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTModuleMethod.h; sourceTree = ""; }; - 14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTModuleMethod.m; sourceTree = ""; }; 14C2CA721B3AC64300E6CBB2 /* RCTModuleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTModuleData.h; sourceTree = ""; }; 14C2CA731B3AC64300E6CBB2 /* RCTModuleData.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTModuleData.mm; sourceTree = ""; }; 14C2CA751B3AC64F00E6CBB2 /* RCTFrameUpdate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTFrameUpdate.m; sourceTree = ""; }; @@ -1430,9 +1437,14 @@ B505583D1E43DFB900F71A00 /* RCTDevSettings.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTDevSettings.mm; sourceTree = ""; }; B95154301D1B34B200FE7B80 /* RCTActivityIndicatorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTActivityIndicatorView.h; sourceTree = ""; }; B95154311D1B34B200FE7B80 /* RCTActivityIndicatorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTActivityIndicatorView.m; sourceTree = ""; }; + C60128AF1F3D128C009DF9FF /* RCTCxxConvert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTCxxConvert.h; sourceTree = ""; }; + C60128B01F3D128C009DF9FF /* RCTCxxConvert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTCxxConvert.m; sourceTree = ""; }; + C60669301F3CC7BD00E67165 /* RCTModuleMethod.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTModuleMethod.mm; sourceTree = ""; }; + C60669381F3CCF3F00E67165 /* RCTManagedPointer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTManagedPointer.mm; sourceTree = ""; }; C6194AB21EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnectionBridgeConfig.h; sourceTree = ""; }; C6194AB31EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPackagerConnectionBridgeConfig.m; sourceTree = ""; }; C6194AB41EF1569C0034D062 /* RCTPackagerConnectionConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnectionConfig.h; sourceTree = ""; }; + C65450601F3BD94C0090799B /* RCTManagedPointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTManagedPointer.h; sourceTree = ""; }; C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJSEnvironment.h; sourceTree = ""; }; CF85BC301E79EC6B00F1EF3B /* RCTDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDeviceInfo.h; sourceTree = ""; }; CF85BC311E79EC6B00F1EF3B /* RCTDeviceInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDeviceInfo.m; sourceTree = ""; }; @@ -1796,6 +1808,8 @@ 68EFE4ED1CF6EB3900A1DE13 /* RCTBundleURLProvider.m */, 83CBBACA1A6023D300E9B192 /* RCTConvert.h */, 83CBBACB1A6023D300E9B192 /* RCTConvert.m */, + C60128AF1F3D128C009DF9FF /* RCTCxxConvert.h */, + C60128B01F3D128C009DF9FF /* RCTCxxConvert.m */, 13AF1F851AE6E777005F5298 /* RCTDefines.h */, 3D1E68D81CABD13900DD7465 /* RCTDisplayLink.h */, 3D1E68D91CABD13900DD7465 /* RCTDisplayLink.m */, @@ -1821,10 +1835,12 @@ 13A1F71D1A75392D00D3D453 /* RCTKeyCommands.m */, 83CBBA4D1A601E3B00E9B192 /* RCTLog.h */, 83CBBA4E1A601E3B00E9B192 /* RCTLog.mm */, + C65450601F3BD94C0090799B /* RCTManagedPointer.h */, + C60669381F3CCF3F00E67165 /* RCTManagedPointer.mm */, 14C2CA721B3AC64300E6CBB2 /* RCTModuleData.h */, 14C2CA731B3AC64300E6CBB2 /* RCTModuleData.mm */, 14C2CA6F1B3AC63800E6CBB2 /* RCTModuleMethod.h */, - 14C2CA701B3AC63800E6CBB2 /* RCTModuleMethod.m */, + C60669301F3CC7BD00E67165 /* RCTModuleMethod.mm */, 006FC4121D9B20820057AAAD /* RCTMultipartDataTask.h */, 006FC4131D9B20820057AAAD /* RCTMultipartDataTask.m */, 001BFCCE1D8381DE008E587E /* RCTMultipartStreamReader.h */, @@ -1921,6 +1937,7 @@ 594AD5CE1E46D87500B07237 /* RCTScrollContentShadowView.h in Headers */, 3D302F2A1DF828F800D6DDAE /* RCTPushNotificationManager.h in Headers */, 3D302F2B1DF828F800D6DDAE /* RCTAssert.h in Headers */, + C65450621F3BD94C0090799B /* RCTManagedPointer.h in Headers */, 3D302F2C1DF828F800D6DDAE /* RCTBridge.h in Headers */, 3D302F2D1DF828F800D6DDAE /* RCTBridge+Private.h in Headers */, 3D302F2E1DF828F800D6DDAE /* RCTBridgeDelegate.h in Headers */, @@ -1991,6 +2008,7 @@ 3D302F681DF828F800D6DDAE /* RCTMacros.h in Headers */, 3D302F691DF828F800D6DDAE /* RCTProfile.h in Headers */, 3D302F6A1DF828F800D6DDAE /* RCTActivityIndicatorView.h in Headers */, + C60128B21F3D128C009DF9FF /* RCTCxxConvert.h in Headers */, 597AD1BE1E577D7800152581 /* RCTRootContentView.h in Headers */, 3D302F6B1DF828F800D6DDAE /* RCTActivityIndicatorViewManager.h in Headers */, 3D302F6C1DF828F800D6DDAE /* RCTAnimationType.h in Headers */, @@ -2111,6 +2129,7 @@ A12E9E8E1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.h in Headers */, 3D80DA1A1DF820620028D040 /* RCTImageStoreManager.h in Headers */, 3D80DA1B1DF820620028D040 /* RCTResizeMode.h in Headers */, + C65450611F3BD94C0090799B /* RCTManagedPointer.h in Headers */, 3D4153511F276ED7005B8EFE /* RCTLayoutAnimation.h in Headers */, 3D80DA1C1DF820620028D040 /* RCTLinkingManager.h in Headers */, 3D80DA1D1DF820620028D040 /* RCTNetworking.h in Headers */, @@ -2129,6 +2148,7 @@ 3D80DA291DF820620028D040 /* RCTDisplayLink.h in Headers */, 3D80DA2A1DF820620028D040 /* RCTErrorCustomizer.h in Headers */, 3D80DA2B1DF820620028D040 /* RCTErrorInfo.h in Headers */, + C60128B11F3D128C009DF9FF /* RCTCxxConvert.h in Headers */, 3D80DA2C1DF820620028D040 /* RCTEventDispatcher.h in Headers */, 3D80DA2D1DF820620028D040 /* RCTFrameUpdate.h in Headers */, 597AD1BD1E577D7800152581 /* RCTRootContentView.h in Headers */, @@ -2523,6 +2543,7 @@ 3D7BFCEA1EA8E1F4008DFB7A /* RCTPackagerConnection.m in Sources */, 2D3B5EAE1D9B08F800451313 /* RCTEventEmitter.m in Sources */, A12E9E901E5DFA6E0029001B /* RCTSamplingProfilerPackagerMethod.mm in Sources */, + C606693A1F3CCF3F00E67165 /* RCTManagedPointer.mm in Sources */, 2D3B5ECA1D9B095F00451313 /* RCTComponentData.m in Sources */, 2D3B5EA31D9B08BE00451313 /* RCTParserUtils.m in Sources */, 2D3B5EA01D9B08B200451313 /* RCTLog.mm in Sources */, @@ -2535,7 +2556,6 @@ 3D4153571F276EE1005B8EFE /* RCTLayoutAnimation.m in Sources */, 2D3B5E971D9B089000451313 /* RCTBridge.m in Sources */, C6194AB81EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */, - 2D3B5EA21D9B08BA00451313 /* RCTModuleMethod.m in Sources */, 2D3B5E9B1D9B08A000451313 /* RCTFrameUpdate.m in Sources */, 2D3B5EE41D9B09BB00451313 /* RCTSegmentedControlManager.m in Sources */, 2D3B5EE31D9B09B700451313 /* RCTSegmentedControl.m in Sources */, @@ -2567,6 +2587,7 @@ 2D3B5EEE1D9B09DA00451313 /* RCTView.m in Sources */, 594AD5D01E46D87500B07237 /* RCTScrollContentShadowView.m in Sources */, 2D3B5E981D9B089500451313 /* RCTConvert.m in Sources */, + C60128B41F3D128C009DF9FF /* RCTCxxConvert.m in Sources */, 2D3B5EA71D9B08CE00451313 /* RCTTouchHandler.m in Sources */, 3D05745A1DE5FFF500184BB4 /* RCTJavaScriptLoader.mm in Sources */, 2D3B5EA41D9B08C200451313 /* RCTPerformanceLogger.m in Sources */, @@ -2575,6 +2596,7 @@ 2D3B5E941D9B087900451313 /* RCTBundleURLProvider.m in Sources */, 2D3B5EB81D9B091B00451313 /* RCTSourceCode.m in Sources */, 945929C51DD62ADD00653A7D /* RCTConvert+Transform.m in Sources */, + C60669321F3CC7BD00E67165 /* RCTModuleMethod.mm in Sources */, 2D3B5EBD1D9B092A00451313 /* RCTTiming.m in Sources */, 2D3B5EA81D9B08D300451313 /* RCTUtils.m in Sources */, 2D3B5EC81D9B095800451313 /* RCTActivityIndicatorViewManager.m in Sources */, @@ -2692,9 +2714,9 @@ 13B07FF01A69327A00A75B9A /* RCTExceptionsManager.m in Sources */, A12E9E8F1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.mm in Sources */, 13BCE8091C99CB9D00DD7AAD /* RCTRootShadowView.m in Sources */, - 14C2CA711B3AC63800E6CBB2 /* RCTModuleMethod.m in Sources */, 595405591EC03A1700766D3C /* RCTShadowView+Layout.m in Sources */, 006FC4141D9B20820057AAAD /* RCTMultipartDataTask.m in Sources */, + C60669391F3CCF3F00E67165 /* RCTManagedPointer.mm in Sources */, A12E9E1C1E5DEA350029001B /* RCTPackagerClient.m in Sources */, 13CC8A821B17642100940AE7 /* RCTBorderDrawing.m in Sources */, 83CBBA511A601E3B00E9B192 /* RCTAssert.m in Sources */, @@ -2739,6 +2761,7 @@ B505583E1E43DFB900F71A00 /* RCTDevMenu.m in Sources */, 14F484561AABFCE100FDF6B9 /* RCTSliderManager.m in Sources */, 13D033631C1837FE0021DC29 /* RCTClipboard.m in Sources */, + C60128B31F3D128C009DF9FF /* RCTCxxConvert.m in Sources */, 14C2CA741B3AC64300E6CBB2 /* RCTModuleData.mm in Sources */, 142014191B32094000CC17BA /* RCTPerformanceLogger.m in Sources */, 83CBBA981A6020BB00E9B192 /* RCTTouchHandler.m in Sources */, @@ -2762,6 +2785,7 @@ 58114A161AAE854800E7D092 /* RCTPicker.m in Sources */, 137327E81AA5CF210034F82E /* RCTTabBarItem.m in Sources */, 83A1FE8C1B62640A00BE0E65 /* RCTModalHostView.m in Sources */, + C60669311F3CC7BD00E67165 /* RCTModuleMethod.mm in Sources */, 13E067551A70F44B002CDEE1 /* RCTShadowView.m in Sources */, 1450FF871BCFF28A00208362 /* RCTProfileTrampoline-arm.S in Sources */, 131B6AF51AF1093D00FFC3E0 /* RCTSegmentedControlManager.m in Sources */,