From f8fb06210d81d544d51236bfd58cfa33106d4290 Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 19 Sep 1988 16:55:35 +0000 Subject: [PATCH] fixed: apparently, the profil system-call does not quite work as described in the manual page? --- lang/cem/libcc/gen/monitor.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/cem/libcc/gen/monitor.c b/lang/cem/libcc/gen/monitor.c index 98ac6f21f..a4652e188 100644 --- a/lang/cem/libcc/gen/monitor.c +++ b/lang/cem/libcc/gen/monitor.c @@ -28,15 +28,15 @@ monitor(lowpc, highpc, buffer, bufsize, nfunc) buffer += sizeof(char *); *(char **) buffer = (char *) highpc; buffer += sizeof(char *); - *(short *) buffer = nfunc; - buffer += 2; + *(int *) buffer = nfunc; + buffer += sizeof(int); buffer += (sizeof (char *) + sizeof(long)) * nfunc; bufsize -= ((sizeof (char *) + sizeof(long)) * nfunc + 2 * sizeof(char *) + sizeof(int)) >> 1; if (bufsize < 0) return; scale = ((char *) highpc - (char *) lowpc) >> 1; if (bufsize < scale) scale = ((long) bufsize << 15) / scale; - else scale = 0x7fff; + else scale = 0x8000; bufp = buffer; sc = scale << 1; bufs = bufsize << 1; @@ -45,7 +45,7 @@ monitor(lowpc, highpc, buffer, bufsize, nfunc) moncontrol(mode) { - profil(bs, bufs, *(char **) bufp, !mode ? 0 : sc); + profil(bufp, bufs, *(char **) bp, !mode ? 0 : sc); } #define NCOUNTS 300 @@ -53,7 +53,7 @@ moncontrol(mode) monstartup(lowpc, highpc) int (*lowpc)(), (*highpc)(); { - int sz = (((char *) highpc - (char *) lowpc + 7) & ~7) << 1; + int sz = (((char *) highpc - (char *) lowpc + 7) & ~7); char *s, *sbrk(); sz += NCOUNTS * (sizeof(long) + sizeof(char *)) + 2 * sizeof(char *) + sizeof(int); -- 2.34.1