o fix for defaultActionClass

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@19309 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
mguesdon 2004-05-14 11:43:47 +00:00
parent 0b91ea6791
commit 7783e141c3

View file

@ -62,6 +62,8 @@ RCS_ID("$Id$")
if ((self=[super init])) if ((self=[super init]))
{ {
ASSIGN(_actionClassName,[self defaultActionClassName]); ASSIGN(_actionClassName,[self defaultActionClassName]);
if (_actionClassName)
ASSIGN(_actionClassClass,[[self class] _actionClassForName:_actionClassName]);
ASSIGN(_defaultActionName,[self defaultDefaultActionName]); ASSIGN(_defaultActionName,[self defaultDefaultActionName]);
_shouldAddToStatistics=[self defaultShouldAddToStatistics]; _shouldAddToStatistics=[self defaultShouldAddToStatistics];
}; };
@ -76,6 +78,8 @@ RCS_ID("$Id$")
if ((self=[self init])) if ((self=[self init]))
{ {
ASSIGN(_actionClassName,defaultActionClassName); ASSIGN(_actionClassName,defaultActionClassName);
if (_actionClassName)
ASSIGN(_actionClassClass,[[self class]_actionClassForName:_actionClassName]);
ASSIGN(_defaultActionName,defaultActionName); ASSIGN(_defaultActionName,defaultActionName);
_shouldAddToStatistics=shouldAddToStatistics; _shouldAddToStatistics=shouldAddToStatistics;
}; };
@ -86,6 +90,7 @@ RCS_ID("$Id$")
-(void)dealloc -(void)dealloc
{ {
DESTROY(_actionClassName); DESTROY(_actionClassName);
DESTROY(_actionClassClass);
DESTROY(_defaultActionName); DESTROY(_defaultActionName);
[super dealloc]; [super dealloc];
}; };
@ -177,7 +182,7 @@ RCS_ID("$Id$")
NSDebugMLog(@"[GSWAction class]=%@",[GSWAction class]); NSDebugMLog(@"[GSWAction class]=%@",[GSWAction class]);
if (class) if (class)
{ {
NSLog(@"Z6- class=%@",class);//TODO: does this to force class init. Check this later [class description];//TODO: does this to force class init. Check this later
if (!GSObjCIsKindOf(class,[GSWAction class])) if (!GSObjCIsKindOf(class,[GSWAction class]))
class=Nil; class=Nil;
}; };
@ -229,10 +234,9 @@ RCS_ID("$Id$")
actionOfClass:*actionClassPtr]) actionOfClass:*actionClassPtr])
{ {
NSDebugMLog(@"_actionClassName=%@",_actionClassName); NSDebugMLog(@"_actionClassName=%@",_actionClassName);
if(!_actionClassClass) { if(!_actionClassClass)
_actionClassClass = NSClassFromString(_actionClassName); _actionClassClass = [[self class]_actionClassForName:_actionClassName];
} NSDebugMLog(@"_actionClassClass=%@",_actionClassClass);
NSDebugMLog(@"_actionClassClass=%@",_actionClassClass); //nil here?? dave
NSDebugMLog(@"testActionName=%@",testActionName); NSDebugMLog(@"testActionName=%@",testActionName);
*actionClassNamePtr = _actionClassName; *actionClassNamePtr = _actionClassName;
*actionClassPtr = _actionClassClass; *actionClassPtr = _actionClassClass;