added "magic" number to the _sre module, to avoid weird errors caused

by compiler/engine mismatches
This commit is contained in:
Fredrik Lundh 2001-01-15 12:46:09 +00:00
parent 142297ac92
commit b35ffc0417
4 changed files with 21 additions and 1 deletions

View File

@ -12,6 +12,8 @@ import _sre
from sre_constants import *
assert _sre.MAGIC == MAGIC, "SRE module mismatch"
MAXCODE = 65535
def _compile(code, pattern, flags):

View File

@ -9,8 +9,15 @@
# See the sre.py file for information on usage and redistribution.
#
# update when constants are added or removed
MAGIC = 20010115
# max code word in this release
MAXREPEAT = 65535
# SRE standard exception (access as sre.error)
# should this really be here?
class error(Exception):
@ -211,6 +218,8 @@ if __name__ == "__main__":
""")
f.write("#define SRE_MAGIC %d\n" % MAGIC)
dump(f, OPCODES, "SRE_OP")
dump(f, ATCODES, "SRE")
dump(f, CHCODES, "SRE")

View File

@ -2355,11 +2355,19 @@ __declspec(dllexport)
#endif
init_sre(void)
{
PyObject* m;
PyObject* d;
/* Patch object types */
Pattern_Type.ob_type = Match_Type.ob_type =
Scanner_Type.ob_type = &PyType_Type;
Py_InitModule("_" MODULE, _functions);
m = Py_InitModule("_" MODULE, _functions);
d = PyModule_GetDict(m);
PyDict_SetItemString(
d, "MAGIC", (PyObject*) PyInt_FromLong(SRE_MAGIC)
);
}
#endif /* !defined(SRE_RECURSIVE) */

View File

@ -11,6 +11,7 @@
* See the _sre.c file for information on usage and redistribution.
*/
#define SRE_MAGIC 20010115
#define SRE_OP_FAILURE 0
#define SRE_OP_SUCCESS 1
#define SRE_OP_ANY 2