I've applied the classes/intqueue.pmc patch.  The other needs adjustment.  
FWIW, your change doesn't cure the errors on TCC:

"string.c", line 51: Error:
  [ISO 6.3.16.1]: Conversion casts away 'const'-ness.
  [ISO 6.3.16]: Can't perform this conversion by assignment.

"string.c", line 55: Error:
  [ISO 6.3.16.1]: Conversion casts away 'const'-ness.
  [ISO 6.3.16]: Can't perform this conversion by assignment.

--Josh

At 17:32 on 03/21/2002 EST, Michel J Lambert <[EMAIL PROTECTED]> wrote:

> 
> We take in const params, and set them into non-const members of STRING:
> string.c(51) : warning C4090: '=' : different 'const' qualifiers
> string.c(55) : warning C4090: '=' : different 'const' qualifiers
> 
> Due to MAKE_KEY in set_keyed setting keys[0] on an uninitialized pointer.
> But I hear this isn't supposed to work anyway. The patch below comments
> the code out.
> c:\p\parrot\core.ops(574) : warning C4700: local variable 'src_key' used
> without having been initialized
> c:\p\parrot\core.ops(575) : warning C4700: local variable 'dest_key' used
> without having been initialized
> 
> IntQueue can miscalculate the length:
> c:\p\parrot\classes\intqueue.c(84) : warning C4700: local variable
> 'length' used without having been initialized
> 
> Patch to remove MAKE_KEY and IntQueue warnings is below.
> 
> Mike Lambert
> 
> 
> 
> Index: core.ops
> ===================================================================
> RCS file: /cvs/public/parrot/core.ops,v
> retrieving revision 1.111
> diff -u -r1.111 core.ops
> --- core.ops  21 Mar 2002 22:01:50 -0000      1.111
> +++ core.ops  21 Mar 2002 22:30:03 -0000
> @@ -567,14 +567,14 @@
>  =cut
> 
>  inline op set_keyed (out PMC, in PMC, in PMC, in PMC)  {
> -    KEY_PAIR src_key_p, dest_key_p;
> -    KEY src_key, dest_key;
> +//    KEY_PAIR src_key_p, dest_key_p;
> +//    KEY src_key, dest_key;
> 
> -    MAKE_KEY(src_key, src_key_p, $2, enum_key_pmc, pmc_val);
> -    MAKE_KEY(dest_key, dest_key_p, $4, enum_key_pmc, pmc_val);
> +//    MAKE_KEY(src_key, src_key_p, $2, enum_key_pmc, pmc_val);
> +//    MAKE_KEY(dest_key, dest_key_p, $4, enum_key_pmc, pmc_val);
> 
> -    $1->vtable->set_pmc_keyed(interpreter,
> -                    $1, $2 ? &src_key : NULL, $3, $4 ? &dest_key : NULL);
> +//    $1->vtable->set_pmc_keyed(interpreter,
> +//                    $1, $2 ? &src_key : NULL, $3, $4 ? &dest_key :
> NULL);
>      goto NEXT();
>  }
> 
> Index: classes/intqueue.pmc
> ===================================================================
> RCS file: /cvs/public/parrot/classes/intqueue.pmc,v
> retrieving revision 1.6
> diff -u -r1.6 intqueue.pmc
> --- classes/intqueue.pmc      10 Mar 2002 21:18:13 -0000      1.6
> +++ classes/intqueue.pmc      21 Mar 2002 22:30:04 -0000
> @@ -68,7 +68,7 @@
>  }
> 
>  static INTVAL queue_length ( CONTAINER* container ) {
> -  INTVAL length;
> +  INTVAL length = 0;
>    if(container->head != NULL) {
>      BUCKET* head = container->head;
>      while(head != NULL) {
> 
> 


Reply via email to