Fix resource leak reported in SF #1516995.
[python.git] / PC / config.c
blobe1b52a4f232b63b5c8751309ad0be624af7c7761
1 /* Module configuration */
3 /* This file contains the table of built-in modules.
4 See init_builtin() in import.c. */
6 #include "Python.h"
8 extern void initarray(void);
9 #ifndef MS_WIN64
10 extern void initaudioop(void);
11 #endif
12 extern void initbinascii(void);
13 extern void initcmath(void);
14 extern void initerrno(void);
15 extern void initgc(void);
16 #ifndef MS_WIN64
17 extern void initimageop(void);
18 #endif
19 extern void initmath(void);
20 extern void init_md5(void);
21 extern void initnt(void);
22 extern void initoperator(void);
23 #ifndef MS_WIN64
24 extern void initrgbimg(void);
25 #endif
26 extern void initsignal(void);
27 extern void init_sha(void);
28 extern void init_sha256(void);
29 extern void init_sha512(void);
30 extern void initstrop(void);
31 extern void inittime(void);
32 extern void initthread(void);
33 extern void initcStringIO(void);
34 extern void initcPickle(void);
35 #ifdef WIN32
36 extern void initmsvcrt(void);
37 extern void init_locale(void);
38 #endif
39 extern void init_codecs(void);
40 extern void init_weakref(void);
41 extern void init_hotshot(void);
42 extern void initxxsubtype(void);
43 extern void initzipimport(void);
44 extern void init_random(void);
45 extern void inititertools(void);
46 extern void init_collections(void);
47 extern void init_heapq(void);
48 extern void init_bisect(void);
49 extern void init_symtable(void);
50 extern void initmmap(void);
51 extern void init_csv(void);
52 extern void init_sre(void);
53 extern void initparser(void);
54 extern void init_winreg(void);
55 extern void init_struct(void);
56 extern void initdatetime(void);
57 extern void init_functools(void);
58 extern void initzlib(void);
60 extern void init_multibytecodec(void);
61 extern void init_codecs_cn(void);
62 extern void init_codecs_hk(void);
63 extern void init_codecs_iso2022(void);
64 extern void init_codecs_jp(void);
65 extern void init_codecs_kr(void);
66 extern void init_codecs_tw(void);
67 extern void init_subprocess(void);
68 extern void init_lsprof(void);
69 extern void init_ast(void);
70 extern void init_types(void);
72 /* tools/freeze/makeconfig.py marker for additional "extern" */
73 /* -- ADDMODULE MARKER 1 -- */
75 extern void PyMarshal_Init(void);
76 extern void initimp(void);
78 struct _inittab _PyImport_Inittab[] = {
80 {"array", initarray},
81 {"_ast", init_ast},
82 #ifdef MS_WINDOWS
83 #ifndef MS_WIN64
84 {"audioop", initaudioop},
85 #endif
86 #endif
87 {"binascii", initbinascii},
88 {"cmath", initcmath},
89 {"errno", initerrno},
90 {"gc", initgc},
91 #ifndef MS_WIN64
92 {"imageop", initimageop},
93 #endif
94 {"math", initmath},
95 {"_md5", init_md5},
96 {"nt", initnt}, /* Use the NT os functions, not posix */
97 {"operator", initoperator},
98 #ifndef MS_WIN64
99 {"rgbimg", initrgbimg},
100 #endif
101 {"signal", initsignal},
102 {"_sha", init_sha},
103 {"_sha256", init_sha256},
104 {"_sha512", init_sha512},
105 {"strop", initstrop},
106 {"time", inittime},
107 #ifdef WITH_THREAD
108 {"thread", initthread},
109 #endif
110 {"cStringIO", initcStringIO},
111 {"cPickle", initcPickle},
112 #ifdef WIN32
113 {"msvcrt", initmsvcrt},
114 {"_locale", init_locale},
115 #endif
116 /* XXX Should _subprocess go in a WIN32 block? not WIN64? */
117 {"_subprocess", init_subprocess},
119 {"_codecs", init_codecs},
120 {"_weakref", init_weakref},
121 {"_hotshot", init_hotshot},
122 {"_random", init_random},
123 {"_bisect", init_bisect},
124 {"_heapq", init_heapq},
125 {"_lsprof", init_lsprof},
126 {"itertools", inititertools},
127 {"_collections", init_collections},
128 {"_symtable", init_symtable},
129 {"mmap", initmmap},
130 {"_csv", init_csv},
131 {"_sre", init_sre},
132 {"parser", initparser},
133 {"_winreg", init_winreg},
134 {"_struct", init_struct},
135 {"datetime", initdatetime},
136 {"_functools", init_functools},
138 {"xxsubtype", initxxsubtype},
139 {"zipimport", initzipimport},
140 {"zlib", initzlib},
142 /* CJK codecs */
143 {"_multibytecodec", init_multibytecodec},
144 {"_codecs_cn", init_codecs_cn},
145 {"_codecs_hk", init_codecs_hk},
146 {"_codecs_iso2022", init_codecs_iso2022},
147 {"_codecs_jp", init_codecs_jp},
148 {"_codecs_kr", init_codecs_kr},
149 {"_codecs_tw", init_codecs_tw},
151 /* tools/freeze/makeconfig.py marker for additional "_inittab" entries */
152 /* -- ADDMODULE MARKER 2 -- */
154 /* This module "lives in" with marshal.c */
155 {"marshal", PyMarshal_Init},
157 /* This lives it with import.c */
158 {"imp", initimp},
160 /* These entries are here for sys.builtin_module_names */
161 {"__main__", NULL},
162 {"__builtin__", NULL},
163 {"sys", NULL},
164 {"exceptions", NULL},
166 {"_types", init_types},
168 /* Sentinel */
169 {0, 0}