summaryrefslogtreecommitdiff
path: root/data/uikittools/2_sbreload.diff
blob: 88dcd40f4ab790864982f53702fc1c67c16d6410 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
diff --git a/sbreload.m b/sbreload.m
index e36134f..85b8e17 100644
--- a/sbreload.m
+++ b/sbreload.m
@@ -49,6 +49,7 @@
 #define FLAG_PLATFORMIZE (1 << 1)
 #include <dlfcn.h>
 #include <objc/runtime.h>
+#include <xpc/xpc.h>
 
 @interface FBSSystemService
 +(id)sharedService;
@@ -143,16 +144,26 @@ void platformizeme() {
 		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;