12345678910111213141516171819202122232425262728293031323334353637383940 |
- //
- // FLEXRuntimeSafety.h
- // FLEX
- //
- // Created by Tanner on 3/25/17.
- //
- #import <Foundation/Foundation.h>
- #import <objc/runtime.h>
- #pragma mark - Classes
- extern NSUInteger const kFLEXKnownUnsafeClassCount;
- extern const Class * FLEXKnownUnsafeClassList(void);
- extern NSSet * FLEXKnownUnsafeClassNames(void);
- extern CFSetRef FLEXKnownUnsafeClasses;
- static inline BOOL FLEXClassIsSafe(Class cls) {
- if (!cls) return NO;
- return !CFSetContainsValue(FLEXKnownUnsafeClasses, (__bridge void *)cls);
- }
- static inline BOOL FLEXClassNameIsSafe(NSString *cls) {
- if (!cls) return NO;
-
- NSSet *ignored = FLEXKnownUnsafeClassNames();
- return ![ignored containsObject:cls];
- }
- #pragma mark - Ivars
- extern CFSetRef FLEXKnownUnsafeIvars;
- static inline BOOL FLEXIvarIsSafe(Ivar ivar) {
- if (!ivar) return NO;
- return !CFSetContainsValue(FLEXKnownUnsafeIvars, ivar);
- }
|