Skip to content

Commit

Permalink
Merge pull request #130 from MosheBerman/fix/129-performance
Browse files Browse the repository at this point in the history
Fix/129 performance
  • Loading branch information
MosheBerman authored Sep 6, 2017
2 parents 29809e8 + a3caefc commit e7624e6
Show file tree
Hide file tree
Showing 20 changed files with 306 additions and 416 deletions.
21 changes: 18 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@

## [Unreleased]


## [5.0.4] 2017-09-05
### Added
- Added an in-memory cache for date formatters.

### Changed
- Performance gains of about 60-75% when scrubbing
- Audited `CKCalendarCell` for performance, including aggressive checking for changes before assigning new states, and reduced number of styling passes.
- Cache a string representation of the custom cell reuse identifier when we change the cell class instead of computing it at each call to `dequeue...`

### Removed
- Removed UIView(Borders), UIColor(HexString) and NSString(ToColor) categories for colors and borders.


## [5.0.3] 2017-08-21
- Made some more adjustments to Xcode schemes for tests.
- Reformatted changelog to match keepachangelog.com
Expand Down Expand Up @@ -125,8 +139,9 @@
### Added
Initial release.

[unreleased]: https://github.com/mosheberman/MBCalendarKit/compare/5.0.3...HEAD
[5.0.3]: https://github.com/mosheberman/MBCalendarKit/compare/5.0.0...5.0.3
[unreleased]: https://github.com/mosheberman/MBCalendarKit/compare/5.0.4...HEAD
[5.0.3]: https://github.com/mosheberman/MBCalendarKit/compare/5.0.3...5.0.4
[5.0.3]: https://github.com/mosheberman/MBCalendarKit/compare/5.0.2...5.0.3
[5.0.2]: https://github.com/mosheberman/MBCalendarKit/compare/5.0.1...5.0.2
[5.0.1]: https://github.com/mosheberman/MBCalendarKit/compare/5.0.0...5.0.1
[5.0.0]: https://github.com/mosheberman/MBCalendarKit/compare/4.0.1...5.0.0
Expand All @@ -150,4 +165,4 @@ Initial release.
[1.1.1]: https://github.com/mosheberman/MBCalendarKit/compare/1.1.0...1.1.1
[1.1.0]: https://github.com/mosheberman/MBCalendarKit/compare/1.0.1...1.1.0
[1.0.1]: https://github.com/mosheberman/MBCalendarKit/compare/1.0.0...1.0.1
[1.0.0]: https://github.com/mosheberman/MBCalendarKit/compare/1.0.0...HEAD
[1.0.0]: https://github.com/mosheberman/MBCalendarKit/compare/1.0.0...HEAD
2 changes: 1 addition & 1 deletion MBCalendarKit.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|

s.name = "MBCalendarKit"
s.version = "5.0.3"
s.version = "5.0.4"
s.summary = "An open source calendar library for iOS."
s.description = <<-DESC
MBCalendarKit is a calendar library for iOS. It offers a flexible calendar control, with support for displaying any calendar system supported by `NSCalendar`. It also includes an API to customize the calendar cells. Recently rewritten, it now has first-class support for Swift interoperability. It also ships with a prebuilt view controller, inspired by the original iOS calendar. For a full list of features, check out the Readme.
Expand Down
64 changes: 24 additions & 40 deletions MBCalendarKit.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
4604E1471F4658CB00F1F50B /* MBCalendarKitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 464A870F171F174D00E7AB19 /* MBCalendarKitTests.m */; };
46087AD81F3C2D80004655C6 /* CKCalendarModel+GridViewSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 46087AD61F3C2D80004655C6 /* CKCalendarModel+GridViewSupport.h */; };
46087AD91F3C2D80004655C6 /* CKCalendarModel+GridViewSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 46087AD71F3C2D80004655C6 /* CKCalendarModel+GridViewSupport.m */; };
460BD68C1F5FA5E7001CBD75 /* CKCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 460BD68A1F5FA5E7001CBD75 /* CKCache.h */; };
460BD68D1F5FA5E7001CBD75 /* CKCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 460BD68B1F5FA5E7001CBD75 /* CKCache.m */; };
461C706D1F46292000E305E3 /* DemoApp.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 461C704D1F46292000E305E3 /* DemoApp.storyboard */; };
461C706E1F46292000E305E3 /* CKAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 461C70521F46292000E305E3 /* CKAppDelegate.m */; };
461C706F1F46292000E305E3 /* AlternateCalendarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 461C70551F46292000E305E3 /* AlternateCalendarViewController.swift */; };
Expand Down Expand Up @@ -55,12 +57,6 @@
467B12C21F2F547500CABA27 /* NSDate+Description.m in Sources */ = {isa = PBXBuildFile; fileRef = 464A86DD171F174D00E7AB19 /* NSDate+Description.m */; };
467B12C31F2F547500CABA27 /* NSDateComponents+AllComponents.h in Headers */ = {isa = PBXBuildFile; fileRef = 464A86DE171F174D00E7AB19 /* NSDateComponents+AllComponents.h */; settings = {ATTRIBUTES = (Public, ); }; };
467B12C41F2F547500CABA27 /* NSDateComponents+AllComponents.m in Sources */ = {isa = PBXBuildFile; fileRef = 464A86DF171F174D00E7AB19 /* NSDateComponents+AllComponents.m */; };
467B12C51F2F547500CABA27 /* NSString+Color.h in Headers */ = {isa = PBXBuildFile; fileRef = 464A86E0171F174D00E7AB19 /* NSString+Color.h */; settings = {ATTRIBUTES = (Public, ); }; };
467B12C61F2F547500CABA27 /* NSString+Color.m in Sources */ = {isa = PBXBuildFile; fileRef = 464A86E1171F174D00E7AB19 /* NSString+Color.m */; };
467B12C71F2F547500CABA27 /* UIColor+HexString.h in Headers */ = {isa = PBXBuildFile; fileRef = 464A86E3171F174D00E7AB19 /* UIColor+HexString.h */; settings = {ATTRIBUTES = (Public, ); }; };
467B12C81F2F547500CABA27 /* UIColor+HexString.m in Sources */ = {isa = PBXBuildFile; fileRef = 464A86E4171F174D00E7AB19 /* UIColor+HexString.m */; };
467B12CB1F2F547500CABA27 /* UIView+Border.h in Headers */ = {isa = PBXBuildFile; fileRef = 464A86E8171F174D00E7AB19 /* UIView+Border.h */; settings = {ATTRIBUTES = (Public, ); }; };
467B12CC1F2F547500CABA27 /* UIView+Border.m in Sources */ = {isa = PBXBuildFile; fileRef = 464A86E9171F174D00E7AB19 /* UIView+Border.m */; };
467B12CD1F2F547500CABA27 /* CKCalendarCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 464A86EC171F174D00E7AB19 /* CKCalendarCell.h */; settings = {ATTRIBUTES = (Public, ); }; };
467B12CE1F2F547500CABA27 /* CKCalendarCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 464A86ED171F174D00E7AB19 /* CKCalendarCell.m */; };
467B12CF1F2F547500CABA27 /* CKCalendarEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 464A86EE171F174D00E7AB19 /* CKCalendarEvent.h */; settings = {ATTRIBUTES = (Public, ); }; };
Expand Down Expand Up @@ -157,6 +153,8 @@
/* Begin PBXFileReference section */
46087AD61F3C2D80004655C6 /* CKCalendarModel+GridViewSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "CKCalendarModel+GridViewSupport.h"; path = "Model/CKCalendarModel+GridViewSupport.h"; sourceTree = "<group>"; };
46087AD71F3C2D80004655C6 /* CKCalendarModel+GridViewSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "CKCalendarModel+GridViewSupport.m"; path = "Model/CKCalendarModel+GridViewSupport.m"; sourceTree = "<group>"; };
460BD68A1F5FA5E7001CBD75 /* CKCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CKCache.h; path = Caches/CKCache.h; sourceTree = "<group>"; };
460BD68B1F5FA5E7001CBD75 /* CKCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CKCache.m; path = Caches/CKCache.m; sourceTree = "<group>"; };
461C704A1F46291100E305E3 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = MBCalendarKit/Info.plist; sourceTree = SOURCE_ROOT; };
461C704E1F46292000E305E3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/DemoApp.storyboard; sourceTree = "<group>"; };
461C70511F46292000E305E3 /* CKAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CKAppDelegate.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -205,12 +203,6 @@
464A86DD171F174D00E7AB19 /* NSDate+Description.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Description.m"; sourceTree = "<group>"; };
464A86DE171F174D00E7AB19 /* NSDateComponents+AllComponents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDateComponents+AllComponents.h"; sourceTree = "<group>"; };
464A86DF171F174D00E7AB19 /* NSDateComponents+AllComponents.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDateComponents+AllComponents.m"; sourceTree = "<group>"; };
464A86E0171F174D00E7AB19 /* NSString+Color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Color.h"; sourceTree = "<group>"; };
464A86E1171F174D00E7AB19 /* NSString+Color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Color.m"; sourceTree = "<group>"; };
464A86E3171F174D00E7AB19 /* UIColor+HexString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+HexString.h"; sourceTree = "<group>"; };
464A86E4171F174D00E7AB19 /* UIColor+HexString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+HexString.m"; sourceTree = "<group>"; };
464A86E8171F174D00E7AB19 /* UIView+Border.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Border.h"; sourceTree = "<group>"; };
464A86E9171F174D00E7AB19 /* UIView+Border.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Border.m"; sourceTree = "<group>"; };
464A86EC171F174D00E7AB19 /* CKCalendarCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CKCalendarCell.h; sourceTree = "<group>"; };
464A86ED171F174D00E7AB19 /* CKCalendarCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CKCalendarCell.m; sourceTree = "<group>"; };
464A86EE171F174D00E7AB19 /* CKCalendarEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CKCalendarEvent.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -306,6 +298,15 @@
name = Model;
sourceTree = "<group>";
};
460BD6851F5FA4C4001CBD75 /* Caches */ = {
isa = PBXGroup;
children = (
460BD68A1F5FA5E7001CBD75 /* CKCache.h */,
460BD68B1F5FA5E7001CBD75 /* CKCache.m */,
);
name = Caches;
sourceTree = "<group>";
};
461C704C1F46292000E305E3 /* Demo App */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -416,8 +417,8 @@
464A86CB171F174D00E7AB19 /* Categories */ = {
isa = PBXGroup;
children = (
46C9172B1F5FB48C00C724CB /* UIKit */,
464A86CC171F174D00E7AB19 /* Foundation */,
464A86E2171F174D00E7AB19 /* UIKit */,
);
path = Categories;
sourceTree = "<group>";
Expand All @@ -430,8 +431,6 @@
464A86D9171F174D00E7AB19 /* NSDate */,
464A86DE171F174D00E7AB19 /* NSDateComponents+AllComponents.h */,
464A86DF171F174D00E7AB19 /* NSDateComponents+AllComponents.m */,
464A86E0171F174D00E7AB19 /* NSString+Color.h */,
464A86E1171F174D00E7AB19 /* NSString+Color.m */,
);
path = Foundation;
sourceTree = "<group>";
Expand Down Expand Up @@ -462,25 +461,6 @@
path = NSDate;
sourceTree = "<group>";
};
464A86E2171F174D00E7AB19 /* UIKit */ = {
isa = PBXGroup;
children = (
464A86E3171F174D00E7AB19 /* UIColor+HexString.h */,
464A86E4171F174D00E7AB19 /* UIColor+HexString.m */,
464A86E5171F174D00E7AB19 /* UIView */,
);
path = UIKit;
sourceTree = "<group>";
};
464A86E5171F174D00E7AB19 /* UIView */ = {
isa = PBXGroup;
children = (
464A86E8171F174D00E7AB19 /* UIView+Border.h */,
464A86E9171F174D00E7AB19 /* UIView+Border.m */,
);
path = UIView;
sourceTree = "<group>";
};
464A86EB171F174D00E7AB19 /* Core */ = {
isa = PBXGroup;
children = (
Expand All @@ -491,6 +471,7 @@
464A86F3171F174D00E7AB19 /* CKCalendarView.m */,
468C693B1F42C5BC00CCD4E4 /* Custom Calendar Cells */,
46AA211C1F3DF13E00E5F832 /* Showing Events */,
460BD6851F5FA4C4001CBD75 /* Caches */,
);
path = Core;
sourceTree = "<group>";
Expand Down Expand Up @@ -609,6 +590,13 @@
name = Products;
sourceTree = "<group>";
};
46C9172B1F5FB48C00C724CB /* UIKit */ = {
isa = PBXGroup;
children = (
);
path = UIKit;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
Expand All @@ -617,6 +605,7 @@
buildActionMask = 2147483647;
files = (
46EF359B1F3C295700095A9E /* CKCalendarModel.h in Headers */,
460BD68C1F5FA5E7001CBD75 /* CKCache.h in Headers */,
46AA20DC1F3D36C800E5F832 /* CKCalendarModel+HeaderViewSupport.h in Headers */,
467B12E11F2F547500CABA27 /* CKCalendarViewController.h in Headers */,
467B12A91F2F544F00CABA27 /* MBCalendarKit.h in Headers */,
Expand All @@ -632,12 +621,9 @@
467B12C31F2F547500CABA27 /* NSDateComponents+AllComponents.h in Headers */,
468CDDE01F42DE5B008E628D /* CKCalendarCellContext.h in Headers */,
46AA211F1F3DF35300E5F832 /* CKCalendarGridTransitionCollectionViewFlowLayout.h in Headers */,
467B12C51F2F547500CABA27 /* NSString+Color.h in Headers */,
46AA21221F3DF3EF00E5F832 /* CKCalendarGridTransitionDirection.h in Headers */,
463690371F4028DB00DFE9D5 /* CKCalendarModel+GridViewAnimationSupport.h in Headers */,
467B12C71F2F547500CABA27 /* UIColor+HexString.h in Headers */,
46341C2C1F3A36380090FFAF /* CKCalendarGridView.h in Headers */,
467B12CB1F2F547500CABA27 /* UIView+Border.h in Headers */,
467B12CD1F2F547500CABA27 /* CKCalendarCell.h in Headers */,
467B12CF1F2F547500CABA27 /* CKCalendarEvent.h in Headers */,
467B12D11F2F547500CABA27 /* CKCalendarHeaderView.h in Headers */,
Expand Down Expand Up @@ -811,6 +797,7 @@
46AA21201F3DF35300E5F832 /* CKCalendarGridTransitionCollectionViewFlowLayout.m in Sources */,
467B12B51F2F547500CABA27 /* NSCalendar+Components.m in Sources */,
463690381F4028DB00DFE9D5 /* CKCalendarModel+GridViewAnimationSupport.m in Sources */,
460BD68D1F5FA5E7001CBD75 /* CKCache.m in Sources */,
467B12B91F2F547500CABA27 /* NSCalendar+DateManipulation.m in Sources */,
467B12BB1F2F547500CABA27 /* NSCalendar+Juncture.m in Sources */,
467B12BD1F2F547500CABA27 /* NSCalendar+Ranges.m in Sources */,
Expand All @@ -823,11 +810,8 @@
46EF359C1F3C295700095A9E /* CKCalendarModel.m in Sources */,
46AA20DD1F3D36C800E5F832 /* CKCalendarModel+HeaderViewSupport.m in Sources */,
46363C2E1F394393002BA215 /* README.md in Sources */,
467B12C61F2F547500CABA27 /* NSString+Color.m in Sources */,
467B12C81F2F547500CABA27 /* UIColor+HexString.m in Sources */,
468CDDCE1F42CBEC008E628D /* CKCalendarView+DefaultCellProviderImplementation.m in Sources */,
46363C2D1F394393002BA215 /* LICENSE.md in Sources */,
467B12CC1F2F547500CABA27 /* UIView+Border.m in Sources */,
467B12CE1F2F547500CABA27 /* CKCalendarCell.m in Sources */,
467B12D01F2F547500CABA27 /* CKCalendarEvent.m in Sources */,
467B12D21F2F547500CABA27 /* CKCalendarHeaderView.m in Sources */,
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,21 @@
//

#import "NSDate+Description.h"
#import "CKCache.h"

@implementation NSDate (Description)

- (NSString *)description
{
NSDateFormatter *formatter = [NSDateFormatter new];
NSDateFormatter *formatter = CKCache.sharedCache.dateFormatter;
formatter.timeStyle = NSDateFormatterNoStyle;
formatter.dateStyle = NSDateFormatterLongStyle;
return [formatter stringFromDate:self];
}

- (NSString *)dayNameOnCalendar:(NSCalendar *)calendar
{
NSDateFormatter *f = [NSDateFormatter new];
NSDateFormatter *f = CKCache.sharedCache.dateFormatter;
f.calendar = calendar;
f.locale = calendar.locale;
[f setLocalizedDateFormatFromTemplate: @"ccc"];
Expand All @@ -29,7 +30,7 @@ - (NSString *)dayNameOnCalendar:(NSCalendar *)calendar

- (NSString *)monthNameOnCalendar:(NSCalendar *)calendar
{
NSDateFormatter *f = [NSDateFormatter new];
NSDateFormatter *f = CKCache.sharedCache.dateFormatter;
f.calendar = calendar;
f.locale = calendar.locale;
[f setLocalizedDateFormatFromTemplate:@"MMMM"];
Expand All @@ -38,7 +39,7 @@ - (NSString *)monthNameOnCalendar:(NSCalendar *)calendar

- (NSString *)monthAndYearOnCalendar:(NSCalendar *)calendar
{
NSDateFormatter *f = [NSDateFormatter new];
NSDateFormatter *f = CKCache.sharedCache.dateFormatter;
f.calendar = calendar;
f.locale = calendar.locale;
[f setLocalizedDateFormatFromTemplate:@"MMMM yyyy"];
Expand All @@ -47,7 +48,7 @@ - (NSString *)monthAndYearOnCalendar:(NSCalendar *)calendar

- (NSString *)monthAbbreviationAndYearOnCalendar:(NSCalendar *)calendar
{
NSDateFormatter *f = [NSDateFormatter new];
NSDateFormatter *f = CKCache.sharedCache.dateFormatter;
f.calendar = calendar;
f.locale = calendar.locale;
[f setLocalizedDateFormatFromTemplate:@"MMM yyyy"];
Expand All @@ -57,7 +58,7 @@ - (NSString *)monthAbbreviationAndYearOnCalendar:(NSCalendar *)calendar

- (NSString *)monthAbbreviationOnCalendar:(NSCalendar *)calendar
{
NSDateFormatter *f = [NSDateFormatter new];
NSDateFormatter *f = CKCache.sharedCache.dateFormatter;
f.calendar = calendar;
f.locale = calendar.locale;
[f setLocalizedDateFormatFromTemplate:@"MMM"];
Expand All @@ -66,7 +67,7 @@ - (NSString *)monthAbbreviationOnCalendar:(NSCalendar *)calendar

- (NSString *)monthAndDayOnCalendar:(NSCalendar *)calendar
{
NSDateFormatter *f = [NSDateFormatter new];
NSDateFormatter *f = CKCache.sharedCache.dateFormatter;
f.calendar = calendar;
f.locale = calendar.locale;
[f setLocalizedDateFormatFromTemplate:@"MMM d"];
Expand All @@ -75,7 +76,7 @@ - (NSString *)monthAndDayOnCalendar:(NSCalendar *)calendar

- (NSString *)dayOfMonthOnCalendar:(NSCalendar *)calendar
{
NSDateFormatter *f = [NSDateFormatter new];
NSDateFormatter *f = CKCache.sharedCache.dateFormatter;
f.calendar = calendar;
f.locale = calendar.locale;
[f setLocalizedDateFormatFromTemplate:@"d"];
Expand All @@ -84,7 +85,7 @@ - (NSString *)dayOfMonthOnCalendar:(NSCalendar *)calendar

- (NSString *)monthAndDayAndYearOnCalendar:(NSCalendar *)calendar
{
NSDateFormatter *f = [NSDateFormatter new];
NSDateFormatter *f = CKCache.sharedCache.dateFormatter;
f.calendar = calendar;
f.locale = calendar.locale;
[f setLocalizedDateFormatFromTemplate:@"MMM d yyyy"];
Expand All @@ -94,7 +95,7 @@ - (NSString *)monthAndDayAndYearOnCalendar:(NSCalendar *)calendar

- (NSString *)dayOfMonthAndYearOnCalendar:(NSCalendar *)calendar
{
NSDateFormatter *f = [NSDateFormatter new];
NSDateFormatter *f = CKCache.sharedCache.dateFormatter;
f.calendar = calendar;
f.locale = calendar.locale;
[f setLocalizedDateFormatFromTemplate:@"d yyyy"];
Expand Down
18 changes: 0 additions & 18 deletions MBCalendarKit/CalendarKit/Categories/Foundation/NSString+Color.h

This file was deleted.

25 changes: 0 additions & 25 deletions MBCalendarKit/CalendarKit/Categories/Foundation/NSString+Color.m

This file was deleted.

24 changes: 0 additions & 24 deletions MBCalendarKit/CalendarKit/Categories/UIKit/UIColor+HexString.h

This file was deleted.

Loading

0 comments on commit e7624e6

Please sign in to comment.