From 3e8ca90e3a39d3e602d88535485cefb36be3eaf4 Mon Sep 17 00:00:00 2001 From: Erik Date: Fri, 5 Feb 2016 13:09:26 -0500 Subject: [PATCH] don't fatalerror --- Source/SwiftRegex.swift | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Source/SwiftRegex.swift b/Source/SwiftRegex.swift index b7c134b..1a8bfd9 100644 --- a/Source/SwiftRegex.swift +++ b/Source/SwiftRegex.swift @@ -23,11 +23,22 @@ internal final class SwiftRegex: NSObject, BooleanType { var regex: NSRegularExpression init(target:String, pattern:String, options:NSRegularExpressionOptions?) { + self.target = target + if dispatch_semaphore_wait(lock, dispatch_time(DISPATCH_TIME_NOW, Int64(10 * NSEC_PER_MSEC))) != 0 { - fatalError("This should never happen") + do { + let regex = try NSRegularExpression(pattern: pattern, options: + NSRegularExpressionOptions.DotMatchesLineSeparators) + self.regex = regex + } catch let error as NSError { + SwiftRegex.failure("Error in pattern: \(pattern) - \(error)") + self.regex = NSRegularExpression() + } + + super.init() + return } - self.target = target if let regex = swiftRegexCache[pattern] { self.regex = regex } else {