From 19fc6c878c013279b587ff8c51e6eda1455811bb Mon Sep 17 00:00:00 2001 From: Adam Fedor Date: Wed, 25 May 2016 14:32:16 -0600 Subject: [PATCH 1/2] Auto-box XPC errors into a NSDictionary --- XPCKit/NSObject+XPCParse.m | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/XPCKit/NSObject+XPCParse.m b/XPCKit/NSObject+XPCParse.m index 4342ad6..4fc6005 100644 --- a/XPCKit/NSObject+XPCParse.m +++ b/XPCKit/NSObject+XPCParse.m @@ -47,7 +47,16 @@ +(id)objectWithXPCObject:(xpc_object_t)xpcObject{ object = [NSFileHandle fileHandleWithXPCObject:xpcObject]; }else if(type == XPC_TYPE_BOOL || type == XPC_TYPE_UINT64 || type == XPC_TYPE_INT64 || type == XPC_TYPE_DOUBLE){ object = [NSNumber numberWithXPCObject:xpcObject]; - } + } + else if([[(__bridge NSObject *)type className] isEqualToString: @"OS_xpc_mach_send"]){ + object = [XPCIOSurface surfaceRefWithXPCObject: xpcObject]; + } + else if (xpcObject == XPC_ERROR_CONNECTION_INTERRUPTED || + xpcObject == XPC_ERROR_CONNECTION_INVALID || + xpcObject == XPC_ERROR_KEY_DESCRIPTION || + xpcObject == XPC_ERROR_TERMINATION_IMMINENT) { + object = [NSDictionary dictionaryWithContentsOfXPCObject: xpcObject]; + } return object; } From 42212994755b3df154737d3e5bdf8bc26cc05b09 Mon Sep 17 00:00:00 2001 From: Adam Fedor Date: Thu, 16 Mar 2017 17:48:44 -0600 Subject: [PATCH 2/2] Remove IOSurface object --- XPCKit/NSObject+XPCParse.m | 3 --- 1 file changed, 3 deletions(-) diff --git a/XPCKit/NSObject+XPCParse.m b/XPCKit/NSObject+XPCParse.m index 4fc6005..63d746b 100644 --- a/XPCKit/NSObject+XPCParse.m +++ b/XPCKit/NSObject+XPCParse.m @@ -48,9 +48,6 @@ +(id)objectWithXPCObject:(xpc_object_t)xpcObject{ }else if(type == XPC_TYPE_BOOL || type == XPC_TYPE_UINT64 || type == XPC_TYPE_INT64 || type == XPC_TYPE_DOUBLE){ object = [NSNumber numberWithXPCObject:xpcObject]; } - else if([[(__bridge NSObject *)type className] isEqualToString: @"OS_xpc_mach_send"]){ - object = [XPCIOSurface surfaceRefWithXPCObject: xpcObject]; - } else if (xpcObject == XPC_ERROR_CONNECTION_INTERRUPTED || xpcObject == XPC_ERROR_CONNECTION_INVALID || xpcObject == XPC_ERROR_KEY_DESCRIPTION ||