Any chance of getting this in some time soon?  The key.c part of it fixes 
the broken tcc (and probably lcc) builds.  All tests passed with tcc for 
me, which is neat.

--Josh

At 21:06 on 02/18/2002 GMT, Jonathan Stowe <[EMAIL PROTECTED]> wrote:

> On Mon, 18 Feb 2002, Dan Sugalski wrote:
> 
> >
> > I think I'd rather we did have the cast in there. If nothing else,
> > it'll help us note where we've cast incorrectly and, while that might
> > just be an error in the casting, it might also indicate an error in
> > the logic.
> >
> 
> OK, this is a roundup of that lot :
> 
> Index: embed.c
> ===================================================================
> RCS file: /home/perlcvs/parrot/embed.c,v
> retrieving revision 1.10
> diff -u -r1.10 embed.c
> --- embed.c   15 Feb 2002 02:30:02 -0000      1.10
> +++ embed.c   18 Feb 2002 20:57:51 -0000
> @@ -129,7 +129,7 @@
> 
>      pf = PackFile_new();
> 
> -    if(!PackFile_unpack(interpreter, pf, program_code, (unsigned)program_siz
e) ) {
> +    if(!PackFile_unpack(interpreter, pf, (opcode_t *)program_code, (size_t)p
rogram_size) ) {
>          fprintf(stderr, "Parrot VM: Can't unpack packfile %s.\n", filename);
>          return NULL;
>      }
> Index: jit.c
> ===================================================================
> RCS file: /home/perlcvs/parrot/jit.c,v
> retrieving revision 1.12
> diff -u -r1.12 jit.c
> --- jit.c     29 Jan 2002 14:05:31 -0000      1.12
> +++ jit.c     18 Feb 2002 20:57:53 -0000
> @@ -214,7 +214,7 @@
>                          address = (INTVAL *)&s->strlen;
>                          break;
>                  case 6:
> -                        address = (INTVAL *)s->encoding;
> +                        address = (INTVAL *)&s->encoding;
>                          break;
>                  case 7:
>                          address = (INTVAL *)&s->type;
> Index: key.c
> ===================================================================
> RCS file: /home/perlcvs/parrot/key.c,v
> retrieving revision 1.19
> diff -u -r1.19 key.c
> --- key.c     11 Feb 2002 17:59:11 -0000      1.19
> +++ key.c     18 Feb 2002 20:57:54 -0000
> @@ -180,10 +180,10 @@
>        return;
>      }
>      if(size > key->size) {
> -      KEY_PAIR* pair = (KEY_PAIR*)realloc(key->keys,sizeof(KEY_PAIR)*size);
> +      KEY_PAIR* pair = (KEY_PAIR*)realloc(key->keys,sizeof(KEY_PAIR *)*size)
;
>        if(pair != NULL) {
>       INTVAL i;
> -        key->keys = pair;
> +        key->keys = (KEY_PAIR **)pair;
>       for(i=key->size;i<size;i++) {
>         key->keys[i]->type = enum_key_undef;
>       }
> @@ -197,7 +197,7 @@
>        for(i=size;i<key->size;i++) {
>          /* Memory leak in the making */
>        }
> -      key->keys = (KEY_PAIR*)realloc(key->keys,sizeof(KEY_PAIR)*size);
> +      key->keys = (KEY_PAIR**)realloc(key->keys,sizeof(KEY_PAIR *)*size);
>      }
>      key->size = size;
>    }
> @@ -241,7 +241,7 @@
> 
>    if(key != NULL) {
>      if((idx >= 0) && (idx < key->size)) {
> -      KEY_PAIR* pair = &key->keys[idx];
> +      KEY_PAIR* pair = (KEY_PAIR *)&key->keys[idx];
>        return pair->type;
>      }
>      else {
> @@ -266,7 +266,7 @@
> 
>    if(key != NULL) {
>      if((idx >= 0) && (idx < key->size)) {
> -      KEY_PAIR* pair = &key->keys[idx];
> +      KEY_PAIR* pair = (KEY_PAIR *)&key->keys[idx];
>        if(pair != NULL) {
>          return pair;
>        }
> @@ -388,7 +388,7 @@
>      if(key->size > 0) {
>        /* Memory leak in the making */
>        key->size--;
> -      key->keys = (KEY_PAIR*)realloc(key->keys,sizeof(KEY_PAIR)*key->size);
> +      key->keys = (KEY_PAIR**)realloc(key->keys,sizeof(KEY_PAIR *)*key->size
);
>      }
>      else if(key->size == 0) {
>        fprintf(stderr,
> @@ -416,7 +416,7 @@
> 
>    if(key != NULL) {
>      if((idx >= 0) && (idx < key->size)) {
> -      KEY_PAIR* pair = &key->keys[idx];
> +      KEY_PAIR* pair = (KEY_PAIR *)&key->keys[idx];
>        pair->type++;
>      }
>      else {
> Index: misc.c
> ===================================================================
> RCS file: /home/perlcvs/parrot/misc.c,v
> retrieving revision 1.11
> diff -u -r1.11 misc.c
> --- misc.c    15 Feb 2002 02:30:02 -0000      1.11
> +++ misc.c    18 Feb 2002 20:57:58 -0000
> @@ -496,7 +496,7 @@
>  }
> 
> 
> -STRING *Parrot_vsprintf_c(struct Parrot_Interp * interpreter, char *pat,
> +STRING *Parrot_vsprintf_c(struct Parrot_Interp * interpreter, const char *pa
t,
>                         va_list * args)
>  {
>      STRING *realpat =
> @@ -545,7 +545,7 @@
>      return ret;
>  }
> 
> -STRING *Parrot_sprintf_c(struct Parrot_Interp * interpreter, char *pat,
> +STRING *Parrot_sprintf_c(struct Parrot_Interp * interpreter, const char *pat
,
>                        ...)
>  {
>      STRING *ret;
> Index: string.c
> ===================================================================
> RCS file: /home/perlcvs/parrot/string.c,v
> retrieving revision 1.46
> diff -u -r1.46 string.c
> --- string.c  5 Feb 2002 11:41:27 -0000       1.46
> +++ string.c  18 Feb 2002 20:58:02 -0000
> @@ -153,8 +153,8 @@
>      STRING *dest;
>      CHARTYPE_TRANSCODER transcoder1 = NULL;
>      CHARTYPE_TRANSCODER transcoder2 = NULL;
> -    char *srcstart;
> -    char *srcend;
> +    const char *srcstart;
> +    const char *srcend;
>      char *deststart;
>      char *destend;
> 
> @@ -298,8 +298,8 @@
>  STRING*
>  string_substr(struct Parrot_Interp *interpreter, const STRING* src, INTVAL o
ffset, INTVAL length, STRING** d) {
>      STRING *dest;
> -    char *substart;
> -    char *subend;
> +    const char *substart;
> +    const char *subend;
>      UINTVAL true_offset;
>      UINTVAL true_length;
> 
> @@ -350,8 +350,8 @@
>   */
>  STRING*
>  string_chopn(STRING* s, INTVAL n) {
> -    char *bufstart = s->bufstart;
> -    char *bufend = bufstart + s->bufused;
> +    const char *bufstart = s->bufstart;
> +    const char *bufend = bufstart + s->bufused;
>      UINTVAL true_n;
> 
>      true_n = (UINTVAL) n;
> @@ -376,10 +376,10 @@
>  INTVAL
>  string_compare(struct Parrot_Interp *interpreter, const STRING* s1,
>                 const STRING* s2) {
> -    char *s1start;
> -    char *s1end;
> -    char *s2start;
> -    char *s2end;
> +    const char *s1start;
> +    const char *s1end;
> +    const char *s2start;
> +    const char *s2end;
>      INTVAL cmp = 0;
> 
>      if (s1 && !s2) {
> @@ -459,8 +459,8 @@
>      INTVAL i = 0;
> 
>      if (s) {
> -        char *start = s->bufstart;
> -        char *end = start + s->bufused;
> +        const char *start = s->bufstart;
> +        const char *end = start + s->bufused;
>          int sign = 1;
>          BOOLVAL in_number = 0;
> 
> @@ -497,8 +497,8 @@
>      FLOATVAL f = 0.0;
> 
>      if (s) {
> -        char *start = s->bufstart;
> -        char *end = start + s->bufused;
> +        const char *start = s->bufstart;
> +        const char *end = start + s->bufused;
>          int sign = 1;
>          BOOLVAL seen_dot = 0;
>          BOOLVAL seen_e = 0;
> Index: test_main.c
> ===================================================================
> RCS file: /home/perlcvs/parrot/test_main.c,v
> retrieving revision 1.44
> diff -u -r1.44 test_main.c
> --- test_main.c       16 Feb 2002 09:20:43 -0000      1.44
> +++ test_main.c       18 Feb 2002 20:58:03 -0000
> @@ -14,6 +14,8 @@
> 
>  #define setopt(flag) Parrot_setflag(interpreter, flag, (*argv)[0]+2);
> 
> +extern void exit(int);
> +
>  char *
>  parseflags(Parrot interpreter, int *argc, char **argv[]);
> 
> Index: include/parrot/misc.h
> ===================================================================
> RCS file: /home/perlcvs/parrot/include/parrot/misc.h,v
> retrieving revision 1.2
> diff -u -r1.2 misc.h
> --- include/parrot/misc.h     5 Feb 2002 10:04:10 -0000       1.2
> +++ include/parrot/misc.h     18 Feb 2002 20:58:04 -0000
> @@ -6,7 +6,7 @@
> 
>  STRING* Parrot_vsprintf_s(struct Parrot_Interp *, STRING* pat, va_list *);
> 
> -STRING* Parrot_vsprintf_c(struct Parrot_Interp *, char * pat, va_list *);
> +STRING* Parrot_vsprintf_c(struct Parrot_Interp *, const char * pat, va_list 
*);
> 
>  void Parrot_vsprintf(struct Parrot_Interp *, char *targ, char *pat, va_list 
*);
> 
> @@ -14,7 +14,7 @@
> 
>  STRING* Parrot_sprintf_s(struct Parrot_Interp *, STRING* pat, ...);
> 
> -STRING* Parrot_sprintf_c(struct Parrot_Interp *, char * pat, ...);
> +STRING* Parrot_sprintf_c(struct Parrot_Interp *, const char * pat, ...);
> 
>  void Parrot_sprintf(struct Parrot_Interp *, char *targ, char *pat, ...);
> 
> 
> 
> Everything still appears to be working and no obvious leaks ....
> 
> /J\
> -- 
> Jonathan Stowe                      |
> <http://www.gellyfish.com>          |      This space for rent
>                                     |


Reply via email to