Hi David,

On Thu, 21 Aug 2003 18:54:30 +0200 David Ayers <[EMAIL PROTECTED]> wrote:

 >| Hi Manual,
 >| 
 >| the unintilized pointer is actually the class name as a c string.  From: 
 >| init.c
[...]
 >| static Class  class_superclass_of_class (Class class)
 >| ...
 >| 
 >| Maybe you could rely on GSObjCRuntime functions (GSObjCSuper) that try 
 >| handle these oddities.

Thank you for the explanation.
At the begining my problem was with GSObjCIsKindOf wich wasn't returning YES when I 
didn't Log the class before (more
precisely now with your help, when the class has not received a message before).

GSObjCIsKindOf  use class_get_super_class and that's why I've got the problem.

So I think there's a bug in GSObjCIsKindOf as it doesn't return the good result under 
this case.
Using GSObjCSuper doesn't seems t to be a solution as it call class_get_super_class

Is there a way to know if a class is initialized and force initialization in 
GSObjCSuper and GSObjCIsKindOf if it 
is not ?

Manuel
 >| 
 >| Cheers,
 >| David
 >| 
 >| 
 >| Manuel Guesdon wrote:
 >| 
 >| >Hi,
 >| >
 >| >I've found a very very stange thing:
 >| >
 >| >I wanted to find if class aClass inherit from another class bClass.
 >| >When NSLog-ing class, this works, without it doesn't !
 >| >
 >| >Here are some traces:
 >| >aClass=0x4156e320                                                                 
 > (aClass address)
 >| >
 >| >class_get_super_class(aClass)=0x4156d782                                (aClass 
 >superclass adress)
 >| >class_get_super_class(class_get_super_class(aClass))=(null)        (aClass 
 >superclass superclass  adress. It
 >| shouldn't
 >| >be null !!!!)
 >| >        
 >| >aClass=MyClassName                                                              
 >(result of
 >| NSLog(@"aClass=%@",aClass))
 >| >
 >| >aClass=0x4156e320                                                                 
 >(aClass address; same as 1st
 >| time)
 >| >class_get_super_class(aClass)=0x41487400                                (aClass 
 >superclass adress. It has changed
 >| !!)
 >| >class_get_super_class(class_get_super_class(aClass))=0x406fcf40 (aClass 
 >superclass superclass  adress. It's now
 >| correct !)!)
 >| >
 >| >
 >| >Any idea ?
 >| >
 >| >Manuels
 >| >  
 >| >
 >| 
 >| 
 >| 

-- 
______________________________________________________________________
Manuel Guesdon - ORANGE CONCEPT <[EMAIL PROTECTED]>
14 rue Jean-Baptiste Clement  -  93200 Saint-Denis  -  France
Tel: +33 1 4940 0997  -  Fax: +33 1 4940 0998



_______________________________________________
Bug-gnustep mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to