+2005-04-04 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * FdExt.subproj/NSObject+Logs.m: fixed previously broken implementation
+ of -logger which now has an NSMapTable for class <-> logger
+ lookup. (v4.5.157)
+
2005-03-17 Helge Hess <helge.hess@opengroupware.org>
* v4.5.156
}
- (id)logger {
- static id logger = nil;
-
- if (logger == nil) {
- NGLoggerManager *lm;
-
- lm = [NGLoggerManager defaultLoggerManager];
+ static NSMapTable *loggerForClassMap = NULL;
+ static NGLoggerManager *lm = nil;
+ NGLogger *logger;
-#if 0 // broken: if [self class] is passed in, 'logger' can't be a static
- logger = [lm loggerForClass:[self class]];
-#else
- logger = [lm loggerForClass:[NSObject class]];
-#if 0
- NSLog(@"%@: created logger: %@", self, logger);
-#endif
-#endif
+ if (!loggerForClassMap) {
+ loggerForClassMap = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks,
+ NSNonRetainedObjectMapValueCallBacks,
+ 200);
+ lm = [NGLoggerManager defaultLoggerManager];
}
+ logger = NSMapGet(loggerForClassMap, self->isa);
+ if (!logger) {
+ logger = [lm loggerForClass:self->isa];
+ NSMapInsert(loggerForClassMap, self->isa, logger);
+ }
+
return logger;
}
);
buildSettings = {
DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 4.5.156;
+ DYLIB_CURRENT_VERSION = 4.5.157;
FRAMEWORK_SEARCH_PATHS = "$(LOCAL_LIBRARY_DIR)/Frameworks";
FRAMEWORK_VERSION = A;
GCC_PRECOMPILE_PREFIX_HEADER = YES;