(really_start_method): Always use OBJC_GEN_METHOD_LABEL.
Pass method_slot as additional arg. (OBJC_GEN_METHOD_LABEL): Add default definition. From-SVN: r3677
This commit is contained in:
parent
6092a4cc83
commit
187e4b0f22
@ -52,6 +52,18 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||||||
so it can store the operation numbers in them. */
|
so it can store the operation numbers in them. */
|
||||||
#ifndef NEXT_OBJC_RUNTIME
|
#ifndef NEXT_OBJC_RUNTIME
|
||||||
#define OBJC_SELECTORS_WITHOUT_LABELS
|
#define OBJC_SELECTORS_WITHOUT_LABELS
|
||||||
|
|
||||||
|
/* This is the default way of generating a method name. */
|
||||||
|
#ifndef OBJC_GEN_METHOD_LABEL
|
||||||
|
#define OBJC_GEN_METHOD_LABEL(BUF, IS_INST, CLASS_NAME, CAT_NAME, SEL_NAME, NUM) \
|
||||||
|
do { \
|
||||||
|
char *cat_name = (CAT_NAME); \
|
||||||
|
if (cat_name == 0) cat_name = ""; \
|
||||||
|
sprintf ((BUF), "_%s_%s_%s_%s_%d", \
|
||||||
|
((IS_INST) ? "i" : "c"), \
|
||||||
|
(CLASS_NAME), cat_name, \
|
||||||
|
(SEL_NAME), (NUM)); \
|
||||||
|
} while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Define the special tree codes that we use. */
|
/* Define the special tree codes that we use. */
|
||||||
@ -4160,16 +4172,12 @@ really_start_method (method, parmlist)
|
|||||||
buf = (char *) alloca (50
|
buf = (char *) alloca (50
|
||||||
+ strlen (IDENTIFIER_POINTER (METHOD_SEL_NAME (method)))
|
+ strlen (IDENTIFIER_POINTER (METHOD_SEL_NAME (method)))
|
||||||
+ strlen (IDENTIFIER_POINTER (CLASS_NAME (implementation_context))));
|
+ strlen (IDENTIFIER_POINTER (CLASS_NAME (implementation_context))));
|
||||||
#ifdef OBJC_GEN_METHOD_LABEL
|
|
||||||
OBJC_GEN_METHOD_LABEL (buf,
|
OBJC_GEN_METHOD_LABEL (buf,
|
||||||
TREE_CODE (method) == INSTANCE_METHOD_DECL,
|
TREE_CODE (method) == INSTANCE_METHOD_DECL,
|
||||||
IDENTIFIER_POINTER (CLASS_NAME (implementation_context)),
|
IDENTIFIER_POINTER (CLASS_NAME (implementation_context)),
|
||||||
NULL,
|
NULL,
|
||||||
IDENTIFIER_POINTER (METHOD_SEL_NAME (method)));
|
IDENTIFIER_POINTER (METHOD_SEL_NAME (method)),
|
||||||
#else
|
++method_slot);
|
||||||
sprintf (buf, "_%d_%s", ++method_slot,
|
|
||||||
IDENTIFIER_POINTER (CLASS_NAME (implementation_context)));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else /* we have a category */
|
else /* we have a category */
|
||||||
{
|
{
|
||||||
@ -4178,17 +4186,12 @@ really_start_method (method, parmlist)
|
|||||||
+ strlen (IDENTIFIER_POINTER (METHOD_SEL_NAME (method)))
|
+ strlen (IDENTIFIER_POINTER (METHOD_SEL_NAME (method)))
|
||||||
+ strlen (IDENTIFIER_POINTER (CLASS_SUPER_NAME (implementation_context)))
|
+ strlen (IDENTIFIER_POINTER (CLASS_SUPER_NAME (implementation_context)))
|
||||||
+ strlen (IDENTIFIER_POINTER (CLASS_NAME (implementation_context))));
|
+ strlen (IDENTIFIER_POINTER (CLASS_NAME (implementation_context))));
|
||||||
#ifdef OBJC_GEN_METHOD_LABEL
|
OBJC_GEN_METHOD_LABEL (buf,
|
||||||
OBJC_GEN_METHOD_LABEL (buf,
|
|
||||||
TREE_CODE (method) == INSTANCE_METHOD_DECL,
|
TREE_CODE (method) == INSTANCE_METHOD_DECL,
|
||||||
IDENTIFIER_POINTER (CLASS_NAME (implementation_context)),
|
IDENTIFIER_POINTER (CLASS_NAME (implementation_context)),
|
||||||
IDENTIFIER_POINTER (CLASS_SUPER_NAME (implementation_context)),
|
IDENTIFIER_POINTER (CLASS_SUPER_NAME (implementation_context)),
|
||||||
IDENTIFIER_POINTER (METHOD_SEL_NAME (method)));
|
IDENTIFIER_POINTER (METHOD_SEL_NAME (method)),
|
||||||
#else
|
++method_slot);
|
||||||
sprintf (buf, "_%d_%s_%s", ++method_slot,
|
|
||||||
IDENTIFIER_POINTER (CLASS_NAME (implementation_context)),
|
|
||||||
IDENTIFIER_POINTER (CLASS_SUPER_NAME (implementation_context)));
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
method_id = get_identifier (buf);
|
method_id = get_identifier (buf);
|
||||||
|
Loading…
Reference in New Issue
Block a user