File: pclassobject.h

package info (click to toggle)
psyco 1.5.1-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,864 kB
  • ctags: 3,295
  • sloc: ansic: 24,491; python: 5,573; perl: 1,309; makefile: 166; sh: 1
file content (40 lines) | stat: -rw-r--r-- 1,389 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 /***************************************************************/
/***            Psyco equivalent of classobject.h              ***/
 /***************************************************************/

#ifndef _PSY_CLASSOBJECT_H
#define _PSY_CLASSOBJECT_H


#include "pobject.h"
#include "pabstract.h"


/* Instance methods */
#define METHOD_im_func   DEF_FIELD(PyMethodObject, PyObject*, im_func,  OB_type)
#define METHOD_im_self   DEF_FIELD(PyMethodObject, PyObject*, im_self,  \
						METHOD_im_func)
#define METHOD_im_class  DEF_FIELD(PyMethodObject, PyObject*, im_class, \
						METHOD_im_self)
#define iMETHOD_IM_FUNC  FIELD_INDEX(METHOD_im_func)
#define iMETHOD_IM_SELF  FIELD_INDEX(METHOD_im_self)
#define iMETHOD_IM_CLASS FIELD_INDEX(METHOD_im_class)
#define METHOD_TOTAL     FIELDS_TOTAL(METHOD_im_class)


EXTERNFN vinfo_t* pinstancemethod_call(PsycoObject* po, vinfo_t* methobj,
                                       vinfo_t* arg, vinfo_t* kw);


 /***************************************************************/
  /***   Virtual-time object builder                           ***/

/* not-yet-computed instance method objects. Usually not computed at all,
   but if it needs be, will call PyMethod_New(). */
EXTERNVAR source_virtual_t psyco_computed_method;

EXTERNFN
vinfo_t* PsycoMethod_New(PyObject* func, vinfo_t* self, PyObject* cls);


#endif /* _PSY_CLASSOBJECT_H */