annotate Python/importdl.h @ 18065:889db6d55506 legacy-trunk

SF bug 430991: wrong co_lnotab Armin Rigo pointed out that the way the line-# table got built didn't work for lines generating more than 255 bytes of bytecode. Fixed as he suggested, plus corresponding changes to pyassem.py, plus added some long overdue docs about this subtle table to compile.c. Bugfix candidate (line numbers may be off in tracebacks under -O).
author Tim Peters <tim.peters@gmail.com>
date Sat, 09 Jun 2001 09:26:21 +0000
parents 6f6f965c5e2d
children f576ffd57966
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
1 #ifndef Py_IMPORTDL_H
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
2 #define Py_IMPORTDL_H
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
3
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
4 #ifdef __cplusplus
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
5 extern "C" {
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
6 #endif
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
7
2052
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
8
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 /* Definitions for dynamic loading of extension modules */
6243
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
10 enum filetype {
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
11 SEARCH_ERROR,
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
12 PY_SOURCE,
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
13 PY_COMPILED,
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
14 C_EXTENSION,
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
15 PY_RESOURCE, /* Mac only */
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
16 PKG_DIRECTORY,
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
17 C_BUILTIN,
8846
745334545898 Added declarations for Mac code resource modules (Jack Jansen).
Guido van Rossum <guido@python.org>
parents: 6243
diff changeset
18 PY_FROZEN,
745334545898 Added declarations for Mac code resource modules (Jack Jansen).
Guido van Rossum <guido@python.org>
parents: 6243
diff changeset
19 PY_CODERESOURCE /* Mac only */
6243
4279f4eb210a First part of package support.
Guido van Rossum <guido@python.org>
parents: 5894
diff changeset
20 };
2052
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
21
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
22 struct filedescr {
2052
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 char *suffix;
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 char *mode;
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 enum filetype type;
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
26 };
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
27 extern struct filedescr * _PyImport_Filetab;
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
28 extern const struct filedescr _PyImport_DynLoadFiletab[];
2052
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
29
13447
a89f7f268de4 Nuke all remaining occurrences of Py_PROTO and Py_FPROTO.
Tim Peters <tim.peters@gmail.com>
parents: 13256
diff changeset
30 extern PyObject *_PyImport_LoadDynamicModule(char *name, char *pathname,
a89f7f268de4 Nuke all remaining occurrences of Py_PROTO and Py_FPROTO.
Tim Peters <tim.peters@gmail.com>
parents: 13256
diff changeset
31 FILE *);
2052
d7e91437f0a2 Lots of changes, most minor (fatal() instead of abort(), use of
Guido van Rossum <guido@python.org>
parents:
diff changeset
32
5894
e2df95b7be78 Removed some variables that are used to exchange data between import.c and
Guido van Rossum <guido@python.org>
parents: 5511
diff changeset
33 /* Max length of module suffix searched for -- accommodates "module.slb" */
e2df95b7be78 Removed some variables that are used to exchange data between import.c and
Guido van Rossum <guido@python.org>
parents: 5511
diff changeset
34 #define MAXSUFFIXSIZE 12
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
35
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
36 #ifdef MS_WINDOWS
11608
9ec7d978800d For Windows, need to add #include <windows.h>.
Guido van Rossum <guido@python.org>
parents: 11601
diff changeset
37 #include <windows.h>
11601
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
38 typedef FARPROC dl_funcptr;
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
39 #else
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
40 #ifdef PYOS_OS2
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
41 typedef int (* APIENTRY dl_funcptr)();
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
42 #else
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
43 typedef void (*dl_funcptr)(void);
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
44 #endif
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
45 #endif
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
46
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
47
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
48 #ifdef __cplusplus
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
49 }
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
50 #endif
0bad9d8b945f Some rearrangements for the importdl.c restructuring.
Guido van Rossum <guido@python.org>
parents: 8846
diff changeset
51 #endif /* !Py_IMPORTDL_H */