ben 97/12/27 07:03:37
Modified: src/os/win32 mod_isapi.c
Log:
Work around optimiser bug.
Revision Changes Path
1.5 +9 -0 apachen/src/os/win32/mod_isapi.c
Index: mod_isapi.c
===================================================================
RCS file: /export/home/cvs/apachen/src/os/win32/mod_isapi.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- mod_isapi.c 1997/10/22 20:30:41 1.4
+++ mod_isapi.c 1997/12/27 15:03:36 1.5
@@ -102,6 +102,14 @@
LPVOID lpvBuffer, LPDWORD lpdwSize,
LPDWORD lpdwDataType);
+/*
+ The optimiser blows it totally here. What happens is that autos are
addressed relative to the
+ stack pointer, which, of course, moves around. The optimiser seems to
lose track of it somewhere
+ between setting isapi_entry and calling through it. We work around the
problem by forcing it to
+ use frame pointers.
+*/
+#pragma optimize("y",off)
+
int isapi_handler (request_rec *r) {
LPEXTENSION_CONTROL_BLOCK ecb =
pcalloc(r->pool, sizeof(struct _EXTENSION_CONTROL_BLOCK));
@@ -275,6 +283,7 @@
}
}
+#pragma optimize("",on)
BOOL WINAPI GetServerVariable (HCONN hConn, LPSTR lpszVariableName,
LPVOID lpvBuffer, LPDWORD lpdwSizeofBuffer) {