OSDN Git Service

Added comments to the definition of IMP
authornicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Sep 2002 17:28:47 +0000 (17:28 +0000)
committernicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Sep 2002 17:28:47 +0000 (17:28 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57072 138bc75d-0d04-0410-961f-82ee72b054a4

libobjc/objc/objc.h

index 79b2519..699542c 100644 (file)
@@ -73,7 +73,14 @@ typedef struct objc_object {
 
 /*
 ** Definition of method type.  When retrieving the implementation of a
-** method, this is type of the pointer returned
+** method, this is type of the pointer returned.  The idea of the
+** definition of IMP is to represent a 'pointer to a general function
+** taking an id, a SEL, followed by other unspecified arguments'.  You
+** must always cast an IMP to a pointer to a function taking the
+** appropriate, specific types for that function, before calling it -
+** to make sure the appropriate arguments are passed to it.  The code
+** generated by the compiler to perform method calls automatically
+** does this cast inside method calls.
 */
 typedef id (*IMP)(id, SEL, ...);