Skip to content

Commit 8b689cf

Browse files
committed
disable SetAttributes attrs
1 parent f2c53e7 commit 8b689cf

File tree

4 files changed

+33
-17
lines changed

4 files changed

+33
-17
lines changed

JJException.xcodeproj/xcuserdata/jezz.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,48 +26,64 @@
2626
<BreakpointProxy
2727
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
2828
<BreakpointContent
29-
uuid = "4403CC7D-AAA4-463C-A33E-556233213B08"
29+
uuid = "959905DE-6FFA-4662-97FB-D8E38DF29E0C"
3030
shouldBeEnabled = "Yes"
3131
ignoreCount = "0"
3232
continueAfterRunningActions = "No"
33-
filePath = "JJException/Source/ARC/NSMutableAttributedString+MutableAttributedStringHook.m"
33+
filePath = "JJException/Source/ARC/NSTimer+CleanTimer.m"
34+
startingColumnNumber = "9223372036854775807"
35+
endingColumnNumber = "9223372036854775807"
36+
startingLineNumber = "85"
37+
endingLineNumber = "85"
38+
landmarkName = "+hookScheduledTimerWithTimeInterval:target:selector:userInfo:repeats:"
39+
landmarkType = "7">
40+
</BreakpointContent>
41+
</BreakpointProxy>
42+
<BreakpointProxy
43+
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
44+
<BreakpointContent
45+
uuid = "3C27DA8F-A770-4B16-BA11-077EA5F726A9"
46+
shouldBeEnabled = "Yes"
47+
ignoreCount = "0"
48+
continueAfterRunningActions = "No"
49+
filePath = "JJException/Source/ARC/NSTimer+CleanTimer.m"
3450
startingColumnNumber = "9223372036854775807"
3551
endingColumnNumber = "9223372036854775807"
3652
startingLineNumber = "51"
3753
endingLineNumber = "51"
38-
landmarkName = "-hookAddAttribute:value:range:"
54+
landmarkName = "-fireTimer"
3955
landmarkType = "7">
4056
</BreakpointContent>
4157
</BreakpointProxy>
4258
<BreakpointProxy
4359
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
4460
<BreakpointContent
45-
uuid = "959905DE-6FFA-4662-97FB-D8E38DF29E0C"
61+
uuid = "80ACC3B4-2863-4CDF-A9D2-81148DD14139"
4662
shouldBeEnabled = "Yes"
4763
ignoreCount = "0"
4864
continueAfterRunningActions = "No"
49-
filePath = "JJException/Source/ARC/NSTimer+CleanTimer.m"
65+
filePath = "JJExceptionTests/JJExceptionTests.m"
5066
startingColumnNumber = "9223372036854775807"
5167
endingColumnNumber = "9223372036854775807"
52-
startingLineNumber = "85"
53-
endingLineNumber = "85"
54-
landmarkName = "+hookScheduledTimerWithTimeInterval:target:selector:userInfo:repeats:"
68+
startingLineNumber = "180"
69+
endingLineNumber = "180"
70+
landmarkName = "-testMutableAttributedString"
5571
landmarkType = "7">
5672
</BreakpointContent>
5773
</BreakpointProxy>
5874
<BreakpointProxy
5975
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
6076
<BreakpointContent
61-
uuid = "3C27DA8F-A770-4B16-BA11-077EA5F726A9"
77+
uuid = "BED5BE22-789D-4467-905F-A72EE745E1D6"
6278
shouldBeEnabled = "Yes"
6379
ignoreCount = "0"
6480
continueAfterRunningActions = "No"
65-
filePath = "JJException/Source/ARC/NSTimer+CleanTimer.m"
81+
filePath = "JJExceptionTests/JJExceptionTests.m"
6682
startingColumnNumber = "9223372036854775807"
6783
endingColumnNumber = "9223372036854775807"
68-
startingLineNumber = "51"
69-
endingLineNumber = "51"
70-
landmarkName = "-fireTimer"
84+
startingLineNumber = "179"
85+
endingLineNumber = "179"
86+
landmarkName = "-testMutableAttributedString"
7187
landmarkType = "7">
7288
</BreakpointContent>
7389
</BreakpointProxy>

JJException/Source/ARC/NSMutableAttributedString+MutableAttributedStringHook.m

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,15 @@ - (void)hookAddAttributes:(NSDictionary<NSString *,id> *)attrs range:(NSRange)ra
7474
}
7575
}
7676

77-
- (void)hookSetAttributes:(NSDictionary<NSString *,id> *)attrs range:(NSRange)range{
77+
- (void)hookSetAttributes:(NSDictionary<NSString *,id> *)attrs range:(NSRange)range {
7878
if (!range.length) {
7979
[self hookSetAttributes:attrs range:range];
80-
}else if (attrs){
80+
} else {
8181
if (range.location + range.length <= self.length) {
8282
[self hookSetAttributes:attrs range:range];
8383
}else{
8484
handleCrashException(JJExceptionGuardNSStringContainer,[NSString stringWithFormat:@"NSMutableAttributedString setAttributes:range: attrs:%@ range:%@",attrs,NSStringFromRange(range)]);
8585
}
86-
}else{
87-
handleCrashException(JJExceptionGuardNSStringContainer,@"NSMutableAttributedString setAttributes:range: attrs nil");
8886
}
8987
}
9088

JJExceptionTests/JJExceptionTests.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,8 @@ - (void)testMutableAttributedString{
175175

176176
[attribute2 setAttributes:nilDic range:NSMakeRange(100, 100)];
177177
[attribute2 setAttributes:nilDic range:NSMakeRange(100, 0)];
178+
[attribute2 addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12] range:NSMakeRange(0, 1)];
179+
[attribute2 setAttributes:nilDic range:NSMakeRange(0, 1)];
178180
[attribute2 setAttributes:@{} range:NSMakeRange(100, 100)];
179181
[attribute2 addAttribute:nilString value:@(2) range:NSMakeRange(0, 1)];
180182

0 commit comments

Comments
 (0)