#include "NGBundleManager.h"
#include "common.h"
#include <NGExtensions/NSObject+Logs.h>
+#include <NGExtensions/NSNull+misc.h>
#import <Foundation/NSFileManager.h>
#import <EOControl/EOQualifier.h>
#include <ctype.h>
bn = [_name stringByAppendingPathExtension:_type];
bundle = NSMapGet(self->nameToBundle, bn);
- if (bundle == nil)
- bundle = [self bundleWithPath:[self pathForBundleWithName:_name type:_type]];
-
+ if (![bundle isNotNull]) {
+ bundle = [self bundleWithPath:
+ [self pathForBundleWithName:_name type:_type]];
+ }
+
+ if (![bundle isNotNull]) /* NSNull is used to signal missing bundles */
+ return nil;
+
if (![[bundle bundleType] isEqualToString:_type])
- bundle = nil;
-
+ return nil;
+
+ /* bundle matches */
return bundle;
}
- (NSBundle *)bundleWithName:(NSString *)_name {