-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpausible.patch
More file actions
99 lines (88 loc) · 2.73 KB
/
Copy pathpausible.patch
File metadata and controls
99 lines (88 loc) · 2.73 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
diff -aur Pods/ZBarSDK.orig/iphone/ZBarImageScanner.m Pods/ZBarSDK/iphone/ZBarImageScanner.m
--- Pods/ZBarSDK.orig/iphone/ZBarImageScanner.m 2015-11-24 20:13:01.000000000 +1000
+++ Pods/ZBarSDK/iphone/ZBarImageScanner.m 2015-11-24 15:01:47.000000000 +1000
@@ -26,6 +26,7 @@
@implementation ZBarImageScanner
+@synthesize pauseScan;
@dynamic enableCache, results;
- (id) init
@@ -33,6 +34,7 @@
if(self = [super init]) {
scanner = zbar_image_scanner_create();
}
+ self.pauseScan = NO;
return(self);
}
@@ -79,7 +81,17 @@
- (NSInteger) scanImage: (ZBarImage*) image
{
- return(zbar_scan_image(scanner, image.zbarImage));
+ @synchronized(self) {
+ if (self.pauseScan) return 0;
+
+ @try {
+ return zbar_scan_image(scanner, image.zbarImage);
+ }
+ @catch (NSException *ex) {
+ printf("Exception caught\n");
+ }
+ }
+ return 0;
}
@end
diff -aur Pods/ZBarSDK.orig/iphone/ZBarReaderView.m Pods/ZBarSDK/iphone/ZBarReaderView.m
--- Pods/ZBarSDK.orig/iphone/ZBarReaderView.m 2015-11-24 20:13:01.000000000 +1000
+++ Pods/ZBarSDK/iphone/ZBarReaderView.m 2015-11-24 15:23:19.000000000 +1000
@@ -575,22 +575,31 @@
{
if(!tracksSymbols)
return;
+
+ @synchronized(self.scanner) {
+ int n = syms.count;
+ assert(n);
+ if(!n)
+ return;
- int n = syms.count;
- assert(n);
- if(!n)
- return;
-
- ZBarSymbol *sym = nil;
- for(ZBarSymbol *s in syms)
- if(!sym || s.type == ZBAR_QRCODE || s.quality > sym.quality)
- sym = s;
- assert(sym);
- if(!sym)
- return;
+ @try {
+ ZBarSymbol *sym = nil;
+ for(ZBarSymbol *s in syms)
+ if(!sym || s.type == ZBAR_QRCODE || s.quality > sym.quality)
+ sym = s;
- [self updateTracking: tracking
- withSymbol: sym];
+ assert(sym);
+ if(!sym)
+ return;
+
+
+ [self updateTracking: tracking
+ withSymbol: sym];
+ }
+ @catch (NSException *ex) {
+ NSLog(@"Mutated symbol set during tracking");
+ }
+ }
}
@end
diff -aur Pods/ZBarSDK.orig/iphone/include/ZBarSDK/ZBarImageScanner.h Pods/ZBarSDK/iphone/include/ZBarSDK/ZBarImageScanner.h
--- Pods/ZBarSDK.orig/iphone/include/ZBarSDK/ZBarImageScanner.h 2015-11-24 20:13:01.000000000 +1000
+++ Pods/ZBarSDK/iphone/include/ZBarSDK/ZBarImageScanner.h 2015-11-24 20:27:01.000000000 +1000
@@ -36,6 +36,8 @@
zbar_image_scanner_t *scanner;
}
+#define ZBAR_IS_PAUSIBLE
+@property (nonatomic) BOOL pauseScan;
@property (nonatomic) BOOL enableCache;
@property (readonly, nonatomic) ZBarSymbolSet *results;