0000: 2f 2a 0a 20 2a 20 54 68 69 73 20 66 69 6c 65 20 /*. * This file
0010: 69 73 20 28 6d 6f 73 74 6c 79 29 20 61 75 74 6f is (mostly) auto
0020: 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 matically genera
0030: 74 65 64 20 66 72 6f 6d 20 74 63 6c 4f 4f 2e 64 ted from tclOO.d
0040: 65 63 6c 73 2e 0a 20 2a 20 49 74 20 69 73 20 63 ecls.. * It is c
0050: 6f 6d 70 69 6c 65 64 20 61 6e 64 20 6c 69 6e 6b ompiled and link
0060: 65 64 20 69 6e 20 77 69 74 68 20 74 68 65 20 74 ed in with the t
0070: 63 6c 4f 4f 20 70 61 63 6b 61 67 65 20 70 72 6f clOO package pro
0080: 70 65 72 2e 0a 20 2a 2f 0a 0a 23 69 66 64 65 66 per.. */..#ifdef
0090: 20 48 41 56 45 5f 43 4f 4e 46 49 47 5f 48 0a 23 HAVE_CONFIG_H.#
00a0: 69 6e 63 6c 75 64 65 20 22 63 6f 6e 66 69 67 2e include "config.
00b0: 68 22 0a 23 65 6e 64 69 66 0a 23 69 6e 63 6c 75 h".#endif.#inclu
00c0: 64 65 20 22 74 63 6c 4f 4f 49 6e 74 2e 68 22 0a de "tclOOInt.h".
00d0: 0a 4d 4f 44 55 4c 45 5f 53 43 4f 50 45 20 63 6f .MODULE_SCOPE co
00e0: 6e 73 74 20 54 63 6c 4f 4f 53 74 75 62 73 20 74 nst TclOOStubs t
00f0: 63 6c 4f 4f 53 74 75 62 73 3b 0a 0a 23 69 66 64 clOOStubs;..#ifd
0100: 65 66 20 5f 5f 47 4e 55 43 5f 5f 0a 23 70 72 61 ef __GNUC__.#pra
0110: 67 6d 61 20 47 43 43 20 64 65 70 65 6e 64 65 6e gma GCC dependen
0120: 63 79 20 22 74 63 6c 4f 4f 2e 64 65 63 6c 73 22 cy "tclOO.decls"
0130: 0a 23 65 6e 64 69 66 0a 0a 23 69 66 64 65 66 20 .#endif..#ifdef
0140: 54 43 4c 5f 4e 4f 5f 44 45 50 52 45 43 41 54 45 TCL_NO_DEPRECATE
0150: 44 0a 23 20 20 20 75 6e 64 65 66 20 54 63 6c 5f D.# undef Tcl_
0160: 4d 65 74 68 6f 64 49 73 54 79 70 65 0a 23 20 20 MethodIsType.#
0170: 20 75 6e 64 65 66 20 54 63 6c 5f 4e 65 77 49 6e undef Tcl_NewIn
0180: 73 74 61 6e 63 65 4d 65 74 68 6f 64 0a 23 20 20 stanceMethod.#
0190: 20 75 6e 64 65 66 20 54 63 6c 5f 4e 65 77 4d 65 undef Tcl_NewMe
01a0: 74 68 6f 64 0a 23 20 20 20 75 6e 64 65 66 20 54 thod.# undef T
01b0: 63 6c 4f 4f 4d 61 6b 65 50 72 6f 63 49 6e 73 74 clOOMakeProcInst
01c0: 61 6e 63 65 4d 65 74 68 6f 64 0a 23 20 20 20 75 anceMethod.# u
01d0: 6e 64 65 66 20 54 63 6c 4f 4f 4d 61 6b 65 50 72 ndef TclOOMakePr
01e0: 6f 63 4d 65 74 68 6f 64 0a 23 20 20 20 64 65 66 ocMethod.# def
01f0: 69 6e 65 20 54 63 6c 5f 4d 65 74 68 6f 64 49 73 ine Tcl_MethodIs
0200: 54 79 70 65 20 30 0a 23 20 20 20 64 65 66 69 6e Type 0.# defin
0210: 65 20 54 63 6c 5f 4e 65 77 49 6e 73 74 61 6e 63 e Tcl_NewInstanc
0220: 65 4d 65 74 68 6f 64 20 30 0a 23 20 20 20 64 65 eMethod 0.# de
0230: 66 69 6e 65 20 54 63 6c 5f 4e 65 77 4d 65 74 68 fine Tcl_NewMeth
0240: 6f 64 20 30 0a 23 20 20 20 64 65 66 69 6e 65 20 od 0.# define
0250: 54 63 6c 4f 4f 4d 61 6b 65 50 72 6f 63 49 6e 73 TclOOMakeProcIns
0260: 74 61 6e 63 65 4d 65 74 68 6f 64 20 30 0a 23 20 tanceMethod 0.#
0270: 20 20 64 65 66 69 6e 65 20 54 63 6c 4f 4f 4d 61 define TclOOMa
0280: 6b 65 50 72 6f 63 4d 65 74 68 6f 64 20 30 0a 23 keProcMethod 0.#
0290: 65 6e 64 69 66 0a 0a 2f 2a 20 21 42 45 47 49 4e endif../* !BEGIN
02a0: 21 3a 20 44 6f 20 6e 6f 74 20 65 64 69 74 20 62 !: Do not edit b
02b0: 65 6c 6f 77 20 74 68 69 73 20 6c 69 6e 65 2e 20 elow this line.
02c0: 2a 2f 0a 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 */..static const
02d0: 20 54 63 6c 4f 4f 49 6e 74 53 74 75 62 73 20 74 TclOOIntStubs t
02e0: 63 6c 4f 4f 49 6e 74 53 74 75 62 73 20 3d 20 7b clOOIntStubs = {
02f0: 0a 20 20 20 20 54 43 4c 5f 53 54 55 42 5f 4d 41 . TCL_STUB_MA
0300: 47 49 43 2c 0a 20 20 20 20 30 2c 0a 20 20 20 20 GIC,. 0,.
0310: 54 63 6c 4f 4f 47 65 74 44 65 66 69 6e 65 43 6d TclOOGetDefineCm
0320: 64 43 6f 6e 74 65 78 74 2c 20 2f 2a 20 30 20 2a dContext, /* 0 *
0330: 2f 0a 20 20 20 20 54 63 6c 4f 4f 4d 61 6b 65 50 /. TclOOMakeP
0340: 72 6f 63 49 6e 73 74 61 6e 63 65 4d 65 74 68 6f rocInstanceMetho
0350: 64 2c 20 2f 2a 20 31 20 2a 2f 0a 20 20 20 20 54 d, /* 1 */. T
0360: 63 6c 4f 4f 4d 61 6b 65 50 72 6f 63 4d 65 74 68 clOOMakeProcMeth
0370: 6f 64 2c 20 2f 2a 20 32 20 2a 2f 0a 20 20 20 20 od, /* 2 */.
0380: 54 63 6c 4f 4f 4e 65 77 50 72 6f 63 49 6e 73 74 TclOONewProcInst
0390: 61 6e 63 65 4d 65 74 68 6f 64 2c 20 2f 2a 20 33 anceMethod, /* 3
03a0: 20 2a 2f 0a 20 20 20 20 54 63 6c 4f 4f 4e 65 77 */. TclOONew
03b0: 50 72 6f 63 4d 65 74 68 6f 64 2c 20 2f 2a 20 34 ProcMethod, /* 4
03c0: 20 2a 2f 0a 20 20 20 20 54 63 6c 4f 4f 4f 62 6a */. TclOOObj
03d0: 65 63 74 43 6d 64 43 6f 72 65 2c 20 2f 2a 20 35 ectCmdCore, /* 5
03e0: 20 2a 2f 0a 20 20 20 20 54 63 6c 4f 4f 49 73 52 */. TclOOIsR
03f0: 65 61 63 68 61 62 6c 65 2c 20 2f 2a 20 36 20 2a eachable, /* 6 *
0400: 2f 0a 20 20 20 20 54 63 6c 4f 4f 4e 65 77 46 6f /. TclOONewFo
0410: 72 77 61 72 64 4d 65 74 68 6f 64 2c 20 2f 2a 20 rwardMethod, /*
0420: 37 20 2a 2f 0a 20 20 20 20 54 63 6c 4f 4f 4e 65 7 */. TclOONe
0430: 77 46 6f 72 77 61 72 64 49 6e 73 74 61 6e 63 65 wForwardInstance
0440: 4d 65 74 68 6f 64 2c 20 2f 2a 20 38 20 2a 2f 0a Method, /* 8 */.
0450: 20 20 20 20 54 63 6c 4f 4f 4e 65 77 50 72 6f 63 TclOONewProc
0460: 49 6e 73 74 61 6e 63 65 4d 65 74 68 6f 64 45 78 InstanceMethodEx
0470: 2c 20 2f 2a 20 39 20 2a 2f 0a 20 20 20 20 54 63 , /* 9 */. Tc
0480: 6c 4f 4f 4e 65 77 50 72 6f 63 4d 65 74 68 6f 64 lOONewProcMethod
0490: 45 78 2c 20 2f 2a 20 31 30 20 2a 2f 0a 20 20 20 Ex, /* 10 */.
04a0: 20 54 63 6c 4f 4f 49 6e 76 6f 6b 65 4f 62 6a 65 TclOOInvokeObje
04b0: 63 74 2c 20 2f 2a 20 31 31 20 2a 2f 0a 20 20 20 ct, /* 11 */.
04c0: 20 54 63 6c 4f 4f 4f 62 6a 65 63 74 53 65 74 46 TclOOObjectSetF
04d0: 69 6c 74 65 72 73 2c 20 2f 2a 20 31 32 20 2a 2f ilters, /* 12 */
04e0: 0a 20 20 20 20 54 63 6c 4f 4f 43 6c 61 73 73 53 . TclOOClassS
04f0: 65 74 46 69 6c 74 65 72 73 2c 20 2f 2a 20 31 33 etFilters, /* 13
0500: 20 2a 2f 0a 20 20 20 20 54 63 6c 4f 4f 4f 62 6a */. TclOOObj
0510: 65 63 74 53 65 74 4d 69 78 69 6e 73 2c 20 2f 2a ectSetMixins, /*
0520: 20 31 34 20 2a 2f 0a 20 20 20 20 54 63 6c 4f 4f 14 */. TclOO
0530: 43 6c 61 73 73 53 65 74 4d 69 78 69 6e 73 2c 20 ClassSetMixins,
0540: 2f 2a 20 31 35 20 2a 2f 0a 20 20 20 20 54 63 6c /* 15 */. Tcl
0550: 4f 4f 4d 61 6b 65 50 72 6f 63 49 6e 73 74 61 6e OOMakeProcInstan
0560: 63 65 4d 65 74 68 6f 64 32 2c 20 2f 2a 20 31 36 ceMethod2, /* 16
0570: 20 2a 2f 0a 20 20 20 20 54 63 6c 4f 4f 4d 61 6b */. TclOOMak
0580: 65 50 72 6f 63 4d 65 74 68 6f 64 32 2c 20 2f 2a eProcMethod2, /*
0590: 20 31 37 20 2a 2f 0a 7d 3b 0a 0a 73 74 61 74 69 17 */.};..stati
05a0: 63 20 63 6f 6e 73 74 20 54 63 6c 4f 4f 53 74 75 c const TclOOStu
05b0: 62 48 6f 6f 6b 73 20 74 63 6c 4f 4f 53 74 75 62 bHooks tclOOStub
05c0: 48 6f 6f 6b 73 20 3d 20 7b 0a 20 20 20 20 26 74 Hooks = {. &t
05d0: 63 6c 4f 4f 49 6e 74 53 74 75 62 73 0a 7d 3b 0a clOOIntStubs.};.
05e0: 0a 63 6f 6e 73 74 20 54 63 6c 4f 4f 53 74 75 62 .const TclOOStub
05f0: 73 20 74 63 6c 4f 4f 53 74 75 62 73 20 3d 20 7b s tclOOStubs = {
0600: 0a 20 20 20 20 54 43 4c 5f 53 54 55 42 5f 4d 41 . TCL_STUB_MA
0610: 47 49 43 2c 0a 20 20 20 20 26 74 63 6c 4f 4f 53 GIC,. &tclOOS
0620: 74 75 62 48 6f 6f 6b 73 2c 0a 20 20 20 20 54 63 tubHooks,. Tc
0630: 6c 5f 43 6f 70 79 4f 62 6a 65 63 74 49 6e 73 74 l_CopyObjectInst
0640: 61 6e 63 65 2c 20 2f 2a 20 30 20 2a 2f 0a 20 20 ance, /* 0 */.
0650: 20 20 54 63 6c 5f 47 65 74 43 6c 61 73 73 41 73 Tcl_GetClassAs
0660: 4f 62 6a 65 63 74 2c 20 2f 2a 20 31 20 2a 2f 0a Object, /* 1 */.
0670: 20 20 20 20 54 63 6c 5f 47 65 74 4f 62 6a 65 63 Tcl_GetObjec
0680: 74 41 73 43 6c 61 73 73 2c 20 2f 2a 20 32 20 2a tAsClass, /* 2 *
0690: 2f 0a 20 20 20 20 54 63 6c 5f 47 65 74 4f 62 6a /. Tcl_GetObj
06a0: 65 63 74 43 6f 6d 6d 61 6e 64 2c 20 2f 2a 20 33 ectCommand, /* 3
06b0: 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 47 65 74 4f */. Tcl_GetO
06c0: 62 6a 65 63 74 46 72 6f 6d 4f 62 6a 2c 20 2f 2a bjectFromObj, /*
06d0: 20 34 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 47 65 4 */. Tcl_Ge
06e0: 74 4f 62 6a 65 63 74 4e 61 6d 65 73 70 61 63 65 tObjectNamespace
06f0: 2c 20 2f 2a 20 35 20 2a 2f 0a 20 20 20 20 54 63 , /* 5 */. Tc
0700: 6c 5f 4d 65 74 68 6f 64 44 65 63 6c 61 72 65 72 l_MethodDeclarer
0710: 43 6c 61 73 73 2c 20 2f 2a 20 36 20 2a 2f 0a 20 Class, /* 6 */.
0720: 20 20 20 54 63 6c 5f 4d 65 74 68 6f 64 44 65 63 Tcl_MethodDec
0730: 6c 61 72 65 72 4f 62 6a 65 63 74 2c 20 2f 2a 20 larerObject, /*
0740: 37 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4d 65 74 7 */. Tcl_Met
0750: 68 6f 64 49 73 50 75 62 6c 69 63 2c 20 2f 2a 20 hodIsPublic, /*
0760: 38 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4d 65 74 8 */. Tcl_Met
0770: 68 6f 64 49 73 54 79 70 65 2c 20 2f 2a 20 39 20 hodIsType, /* 9
0780: 2a 2f 0a 20 20 20 20 54 63 6c 5f 4d 65 74 68 6f */. Tcl_Metho
0790: 64 4e 61 6d 65 2c 20 2f 2a 20 31 30 20 2a 2f 0a dName, /* 10 */.
07a0: 20 20 20 20 54 63 6c 5f 4e 65 77 49 6e 73 74 61 Tcl_NewInsta
07b0: 6e 63 65 4d 65 74 68 6f 64 2c 20 2f 2a 20 31 31 nceMethod, /* 11
07c0: 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4e 65 77 4d */. Tcl_NewM
07d0: 65 74 68 6f 64 2c 20 2f 2a 20 31 32 20 2a 2f 0a ethod, /* 12 */.
07e0: 20 20 20 20 54 63 6c 5f 4e 65 77 4f 62 6a 65 63 Tcl_NewObjec
07f0: 74 49 6e 73 74 61 6e 63 65 2c 20 2f 2a 20 31 33 tInstance, /* 13
0800: 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 65 */. Tcl_Obje
0810: 63 74 44 65 6c 65 74 65 64 2c 20 2f 2a 20 31 34 ctDeleted, /* 14
0820: 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 65 */. Tcl_Obje
0830: 63 74 43 6f 6e 74 65 78 74 49 73 46 69 6c 74 65 ctContextIsFilte
0840: 72 69 6e 67 2c 20 2f 2a 20 31 35 20 2a 2f 0a 20 ring, /* 15 */.
0850: 20 20 20 54 63 6c 5f 4f 62 6a 65 63 74 43 6f 6e Tcl_ObjectCon
0860: 74 65 78 74 4d 65 74 68 6f 64 2c 20 2f 2a 20 31 textMethod, /* 1
0870: 36 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 6 */. Tcl_Obj
0880: 65 63 74 43 6f 6e 74 65 78 74 4f 62 6a 65 63 74 ectContextObject
0890: 2c 20 2f 2a 20 31 37 20 2a 2f 0a 20 20 20 20 54 , /* 17 */. T
08a0: 63 6c 5f 4f 62 6a 65 63 74 43 6f 6e 74 65 78 74 cl_ObjectContext
08b0: 53 6b 69 70 70 65 64 41 72 67 73 2c 20 2f 2a 20 SkippedArgs, /*
08c0: 31 38 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 43 6c 18 */. Tcl_Cl
08d0: 61 73 73 47 65 74 4d 65 74 61 64 61 74 61 2c 20 assGetMetadata,
08e0: 2f 2a 20 31 39 20 2a 2f 0a 20 20 20 20 54 63 6c /* 19 */. Tcl
08f0: 5f 43 6c 61 73 73 53 65 74 4d 65 74 61 64 61 74 _ClassSetMetadat
0900: 61 2c 20 2f 2a 20 32 30 20 2a 2f 0a 20 20 20 20 a, /* 20 */.
0910: 54 63 6c 5f 4f 62 6a 65 63 74 47 65 74 4d 65 74 Tcl_ObjectGetMet
0920: 61 64 61 74 61 2c 20 2f 2a 20 32 31 20 2a 2f 0a adata, /* 21 */.
0930: 20 20 20 20 54 63 6c 5f 4f 62 6a 65 63 74 53 65 Tcl_ObjectSe
0940: 74 4d 65 74 61 64 61 74 61 2c 20 2f 2a 20 32 32 tMetadata, /* 22
0950: 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 65 */. Tcl_Obje
0960: 63 74 43 6f 6e 74 65 78 74 49 6e 76 6f 6b 65 4e ctContextInvokeN
0970: 65 78 74 2c 20 2f 2a 20 32 33 20 2a 2f 0a 20 20 ext, /* 23 */.
0980: 20 20 54 63 6c 5f 4f 62 6a 65 63 74 47 65 74 4d Tcl_ObjectGetM
0990: 65 74 68 6f 64 4e 61 6d 65 4d 61 70 70 65 72 2c ethodNameMapper,
09a0: 20 2f 2a 20 32 34 20 2a 2f 0a 20 20 20 20 54 63 /* 24 */. Tc
09b0: 6c 5f 4f 62 6a 65 63 74 53 65 74 4d 65 74 68 6f l_ObjectSetMetho
09c0: 64 4e 61 6d 65 4d 61 70 70 65 72 2c 20 2f 2a 20 dNameMapper, /*
09d0: 32 35 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 43 6c 25 */. Tcl_Cl
09e0: 61 73 73 53 65 74 43 6f 6e 73 74 72 75 63 74 6f assSetConstructo
09f0: 72 2c 20 2f 2a 20 32 36 20 2a 2f 0a 20 20 20 20 r, /* 26 */.
0a00: 54 63 6c 5f 43 6c 61 73 73 53 65 74 44 65 73 74 Tcl_ClassSetDest
0a10: 72 75 63 74 6f 72 2c 20 2f 2a 20 32 37 20 2a 2f ructor, /* 27 */
0a20: 0a 20 20 20 20 54 63 6c 5f 47 65 74 4f 62 6a 65 . Tcl_GetObje
0a30: 63 74 4e 61 6d 65 2c 20 2f 2a 20 32 38 20 2a 2f ctName, /* 28 */
0a40: 0a 20 20 20 20 54 63 6c 5f 4d 65 74 68 6f 64 49 . Tcl_MethodI
0a50: 73 50 72 69 76 61 74 65 2c 20 2f 2a 20 32 39 20 sPrivate, /* 29
0a60: 2a 2f 0a 20 20 20 20 54 63 6c 5f 47 65 74 43 6c */. Tcl_GetCl
0a70: 61 73 73 4f 66 4f 62 6a 65 63 74 2c 20 2f 2a 20 assOfObject, /*
0a80: 33 30 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 47 65 30 */. Tcl_Ge
0a90: 74 4f 62 6a 65 63 74 43 6c 61 73 73 4e 61 6d 65 tObjectClassName
0aa0: 2c 20 2f 2a 20 33 31 20 2a 2f 0a 20 20 20 20 54 , /* 31 */. T
0ab0: 63 6c 5f 4d 65 74 68 6f 64 49 73 54 79 70 65 32 cl_MethodIsType2
0ac0: 2c 20 2f 2a 20 33 32 20 2a 2f 0a 20 20 20 20 54 , /* 32 */. T
0ad0: 63 6c 5f 4e 65 77 49 6e 73 74 61 6e 63 65 4d 65 cl_NewInstanceMe
0ae0: 74 68 6f 64 32 2c 20 2f 2a 20 33 33 20 2a 2f 0a thod2, /* 33 */.
0af0: 20 20 20 20 54 63 6c 5f 4e 65 77 4d 65 74 68 6f Tcl_NewMetho
0b00: 64 32 2c 20 2f 2a 20 33 34 20 2a 2f 0a 7d 3b 0a d2, /* 34 */.};.
0b10: 0a 2f 2a 20 21 45 4e 44 21 3a 20 44 6f 20 6e 6f ./* !END!: Do no
0b20: 74 20 65 64 69 74 20 61 62 6f 76 65 20 74 68 69 t edit above thi
0b30: 73 20 6c 69 6e 65 2e 20 2a 2f 0a s line. */.