diff --git a/src/gc.c b/src/gc.c index 235d4937b2b0fc676c7dd6070b44ad6cab67d3f9..99a5dab83cde27517c16c0e000f5a5aecd7b8206 100644 --- a/src/gc.c +++ b/src/gc.c @@ -29,7 +29,7 @@ struct callback *gc_evaluator_callback=0; #include "block_alloc.h" -RCSID("$Id: gc.c,v 1.115 2000/08/10 13:34:36 grubba Exp $"); +RCSID("$Id: gc.c,v 1.116 2000/08/11 13:08:02 grubba Exp $"); /* Run garbage collect approximately every time * 20 percent of all arrays, objects and programs is @@ -229,7 +229,8 @@ void dump_gc_info(void) fprintf(stderr," threshold for next gc() : %ld\n",(long)alloc_threshold); fprintf(stderr,"Average allocs per gc() : %f\n",objects_alloced); fprintf(stderr,"Average frees per gc() : %f\n",objects_freed); - fprintf(stderr,"Second since last gc() : %ld\n", (long)TIME(0) - (long)last_gc); + fprintf(stderr,"Second since last gc() : %ld\n", + DO_NOT_WARN((long)TIME(0) - (long)last_gc)); fprintf(stderr,"Projected garbage : %f\n", objects_freed * (double) num_allocs / (double) alloc_threshold); fprintf(stderr,"in_gc : %d\n", Pike_in_gc); } @@ -318,7 +319,7 @@ void describe_location(void *real_memblock, indent,"", get_name_of_type(type), memblock, - (long)((char *)location - (char *)memblock)); + DO_NOT_WARN((long)((char *)location - (char *)memblock))); else fprintf(stderr,"%*s-> at location %p in unknown memblock (mmaped?)\n", indent,"", @@ -364,7 +365,7 @@ void describe_location(void *real_memblock, { e=((char *)ptr - (char *)(p->inherits)) / sizeof(struct inherit); fprintf(stderr,"%*s **In p->inherits[%ld] (%s)\n",indent,"", - e, + DO_NOT_WARN((long)e), p->inherits[e].name ? p->inherits[e].name->str : "no name"); break; } @@ -376,7 +377,7 @@ void describe_location(void *real_memblock, e = ((char *)ptr - (char *)(p->constants)) / sizeof(struct program_constant); fprintf(stderr,"%*s **In p->constants[%ld] (%s)\n",indent,"", - e, + DO_NOT_WARN((long)e), p->constants[e].name ? p->constants[e].name->str : "no name"); break; } @@ -389,7 +390,7 @@ void describe_location(void *real_memblock, e = ((char *)ptr - (char *)(p->identifiers)) / sizeof(struct identifier); fprintf(stderr,"%*s **In p->identifiers[%ld] (%s)\n",indent,"", - e, + DO_NOT_WARN((long)e), p->identifiers[e].name ? p->identifiers[e].name->str : "no name"); break; } diff --git a/src/modules/Regexp/pike_regexp.c b/src/modules/Regexp/pike_regexp.c index fe5d5ebaf57df439ed7330d3a7c2ea4714d7d9ef..8c3d21f6ed32e6bfddb0d13d3334ea23b60b93f6 100644 --- a/src/modules/Regexp/pike_regexp.c +++ b/src/modules/Regexp/pike_regexp.c @@ -1,5 +1,5 @@ /* - * $Id: pike_regexp.c,v 1.14 2000/07/28 07:14:40 hubbe Exp $ + * $Id: pike_regexp.c,v 1.15 2000/08/11 13:04:22 grubba Exp $ * * regexp.c - regular expression matching * @@ -254,7 +254,7 @@ regexp *pike_regcomp(char *exp,int excompat) register regexp *r; register char *scan; register char *longest; - register int len; + register size_t len; int flags; short *exp2,*dest,c; @@ -357,7 +357,7 @@ regexp *pike_regcomp(char *exp,int excompat) len = 0; for (; scan != NULL; scan = regnext(scan)) if (OP(scan) == EXACTLY && - (int)strlen(OPERAND(scan)) >= len) { + strlen(OPERAND(scan)) >= len) { longest = OPERAND(scan); len = strlen(OPERAND(scan)); } @@ -713,9 +713,9 @@ static void reginsert(char op, char *opnd) */ static void regtail(char *p, char *val) { - register char *scan; - register char *temp; - register int offset; + register char *scan; + register char *temp; + register ptrdiff_t offset; if (p == ®dummy) return; @@ -733,8 +733,8 @@ static void regtail(char *p, char *val) offset = scan - val; else offset = val - scan; - *(scan + 1) = (offset >> 8) & 0377; - *(scan + 2) = offset & 0377; + *(scan + 1) = DO_NOT_WARN((offset >> 8) & 0377); + *(scan + 2) = DO_NOT_WARN(offset & 0377); } /* @@ -765,7 +765,7 @@ static char **regendp; /* Ditto for endp. */ */ STATIC int regtry(regexp *, char *); STATIC int regmatch(char *); -STATIC int regrepeat(char *); +STATIC size_t regrepeat(char *); #ifdef PIKE_DEBUG int regnarrate = 0; @@ -932,7 +932,7 @@ char *prog; return (0); break; case EXACTLY:{ - register int len; + register size_t len; register char *opnd; opnd = OPERAND(scan); @@ -982,7 +982,7 @@ char *prog; break; case STAR:{ register char nextch; - register int no; + register size_t no; register char *save; register int minimum; @@ -995,8 +995,8 @@ char *prog; nextch = *OPERAND(nxt); minimum = (OP(scan) == STAR) ? 0 : 1; save = reginput; - no = regrepeat(OPERAND(scan)); - while (no >= minimum) { + no = regrepeat(OPERAND(scan)) + (minimum == 0); + while (no) { /* If it could work, try it. */ if (nextch == '\0' || *reginput == nextch) if (regmatch(nxt)) @@ -1072,16 +1072,16 @@ char *prog; */ #ifdef __STDC__ -static int regrepeat(char *p) +static size_t regrepeat(char *p) #else -static int regrepeat(p) +static size_t regrepeat(p) char *p; #endif { - register int count = 0; + register size_t count = 0; register char *scan; register char *opnd; @@ -1175,12 +1175,15 @@ regexp *r; s = r->program + 1; while (op != END) { /* While that wasn't END last time... */ op = OP(s); - printf("%2ld%s", (long)(s - r->program), regprop(s)); /* Where, what. */ + printf("%2ld%s", /* Where, what. */ + DO_NOT_WARN((long)(s - r->program)), + regprop(s)); nxt = regnext(s); if (nxt == (char *)NULL) /* nxt ptr. */ printf("(0)"); else - printf("(%ld)", (long)( (s - r->program) + (nxt - s))); + printf("(%ld)", + DO_NOT_WARN((long)( (s - r->program) + (nxt - s)))); s += 3; if (op == ANYOF || op == ANYBUT || op == EXACTLY) { /* Literal string, where present. */ @@ -1291,7 +1294,7 @@ char *pike_regsub(regexp *prog, char *source, char *dest, int n) register char *dst; register char c; register int no; - register int len; + register ptrdiff_t len; if (prog == (regexp *)NULL || source == (char *)NULL || dest == (char *)NULL) { diff --git a/src/modules/Regexp/pike_regexp.h b/src/modules/Regexp/pike_regexp.h index a9d67be6f0a5064cca499ecd391ec359a8ba09e8..5aadaa672104478ee0ff222e9c88489f548ab855 100644 --- a/src/modules/Regexp/pike_regexp.h +++ b/src/modules/Regexp/pike_regexp.h @@ -3,10 +3,11 @@ ||| Pike is distributed as GPL (General Public License) ||| See the files COPYING and DISCLAIMER for more information. \*/ +/**/ #ifndef REGEXP_H #define REGEXP_H /* - * $Id: pike_regexp.h,v 1.3 1998/03/28 14:35:36 grubba Exp $ + * $Id: pike_regexp.h,v 1.4 2000/08/11 13:04:32 grubba Exp $ * * Definitions etc. for regexp(3) routines. * @@ -22,7 +23,7 @@ typedef struct regexp char regstart; /* Internal use only. */ char reganch; /* Internal use only. */ char *regmust; /* Internal use only. */ - int regmlen; /* Internal use only. */ + size_t regmlen; /* Internal use only. */ char program[1]; /* Unwarranted chumminess with compiler. */ } regexp;