From b9347204fd9f2f5894146e65efe1b23402f519ad Mon Sep 17 00:00:00 2001 From: Sam Bingner Date: Wed, 23 Oct 2019 23:06:19 -1000 Subject: Workaround for what appears to be an iOS bug --- sbreload.m | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/sbreload.m b/sbreload.m index e72eb76..bc3ecde 100644 --- a/sbreload.m +++ b/sbreload.m @@ -64,6 +64,7 @@ #define FLAG_PLATFORMIZE (1 << 1) #include #include +#include @interface FBSSystemService +(id)sharedService; @@ -158,16 +159,26 @@ CF2launch_data(CFTypeRef cfr) case kCFNumberLongType: case kCFNumberLongLongType: CFNumberGetValue(cfr, kCFNumberLongLongType, &n); - r = launch_data_alloc(LAUNCH_DATA_INTEGER); - launch_data_set_integer(r, n); + if (kCFCoreFoundationVersionNumber >= 1443.00) { + r = (launch_data_t)xpc_int64_create(n); + } else { + // This hangs forever if I call it on new iOS??? + r = launch_data_alloc(LAUNCH_DATA_INTEGER); + launch_data_set_integer(r, n); + } break; case kCFNumberFloat32Type: case kCFNumberFloat64Type: case kCFNumberFloatType: case kCFNumberDoubleType: CFNumberGetValue(cfr, kCFNumberDoubleType, &d); - r = launch_data_alloc(LAUNCH_DATA_REAL); - launch_data_set_real(r, d); + if (kCFCoreFoundationVersionNumber >= 1443.00) { + r = (launch_data_t)xpc_double_create(d); + } else { + // Not sure if this hangs, but added to be safe + r = launch_data_alloc(LAUNCH_DATA_REAL); + launch_data_set_real(r, d); + } break; default: r = NULL; -- cgit v1.2.3