Use dos.library/CreateNewProc() instead of alib/CreateNewProcTags()
[tangerine.git] / compiler / alib / domethod.c
blobe33e0f758ddf667bd9ced55bee64d06ed07d4305
1 /*
2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #define INTUITION_NO_INLINE_STDARG
8 #include <aros/debug.h>
9 #include <intuition/classes.h>
10 #include <proto/alib.h>
11 #include "alib_intern.h"
13 /******************************************************************************
15 NAME */
16 #include <intuition/classusr.h>
17 #include <proto/intuition.h>
19 IPTR DoMethodA (
21 /* SYNOPSIS */
22 Object * obj,
23 Msg message)
25 /* FUNCTION
26 Invokes a method on a BOOPSI object. The dispatcher of the class the
27 object is inherited from is called. For more information about methods
28 a class supports, see the class documentation.
30 INPUTS
31 obj - The object on which the method is to be performed.
32 message - The message. The first field is the same for all methods and
33 specifies which method is to be invoked (see
34 <intuition/classusr.h>).
36 RESULT
37 Class and method dependent. See the class documentation. A value of 0
38 can be a valid return code but can also mean that a method is not
39 supported.
41 NOTES
43 EXAMPLE
45 BUGS
47 SEE ALSO
48 NewObjectA(), SetAttrsA(), GetAttr(), DisposeObject(), CoerceMethodA(),
49 DoSuperMethodA(), <intuition/classusr.h>
51 ******************************************************************************/
53 ASSERT_VALID_PTR(obj);
55 if (!obj)
56 return 0L;
58 ASSERT_VALID_PTR(OCLASS(obj));
59 ASSERT_VALID_PTR(message);
61 return CALLHOOKPKT((struct Hook *) OCLASS(obj), obj, message);
62 } /* DoMethodA */
64 IPTR DoMethod (Object * obj, IPTR MethodID, ...)
66 ASSERT_VALID_PTR(obj);
67 if (!obj)
68 return 0L;
70 ASSERT_VALID_PTR(OCLASS(obj));
72 AROS_SLOWSTACKMETHODS_PRE(MethodID)
73 retval = CALLHOOKPKT((struct Hook *) OCLASS(obj), obj, AROS_SLOWSTACKMETHODS_ARG(MethodID));
74 AROS_SLOWSTACKMETHODS_POST
75 } /* DoMethod() */