cvsuser     04/08/20 06:39:37

  Modified:    t/pmc    perlhash.t
               src      key.c
  Log:
  Fix an infinite loop in key_string
  
  Courtesy of Steve Fink <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.45      +18 -2     parrot/t/pmc/perlhash.t
  
  Index: perlhash.t
  ===================================================================
  RCS file: /cvs/public/parrot/t/pmc/perlhash.t,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -w -r1.44 -r1.45
  --- perlhash.t        19 Apr 2004 12:15:22 -0000      1.44
  +++ perlhash.t        20 Aug 2004 13:39:36 -0000      1.45
  @@ -1,7 +1,7 @@
   #! perl
   
   # Copyright: 2001-2003 The Perl Foundation.  All Rights Reserved.
  -# $Id: perlhash.t,v 1.44 2004/04/19 12:15:22 leo Exp $
  +# $Id: perlhash.t,v 1.45 2004/08/20 13:39:36 dan Exp $
   
   =head1 NAME
   
  @@ -19,7 +19,7 @@
   
   =cut
   
  -use Parrot::Test tests => 34;
  +use Parrot::Test tests => 35;
   use Test::More;
   
   output_is(<<CODE, <<OUTPUT, "Initial PerlHash tests");
  @@ -691,6 +691,22 @@
   12
   OUTPUT
   
  +output_is(<< 'CODE', << 'OUTPUT', "Getting PMCs from string;int compound keys");
  +    new P0, .PerlHash
  +    new P1, .PerlHash
  +    new P2, .PerlInt
  +    set P2, 4
  +    set P1[0], P2
  +    set P0["a"], P1
  +    set I0, P0["a";0]
  +    print "Four is "
  +    print I0
  +    print "\n"
  +    end
  +CODE
  +Four is 4
  +OUTPUT
  +
   # A hash is only false if it has size 0
   
   output_is(<<'CODE', <<OUTPUT, "if (PerlHash)");
  
  
  
  1.52      +5 -1      parrot/src/key.c
  
  Index: key.c
  ===================================================================
  RCS file: /cvs/public/parrot/src/key.c,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -w -r1.51 -r1.52
  --- key.c     8 Jul 2004 10:19:11 -0000       1.51
  +++ key.c     20 Aug 2004 13:39:37 -0000      1.52
  @@ -1,6 +1,6 @@
   /*
   Copyright: 2001-2003 The Perl Foundation.  All Rights Reserved.
  -$Id: key.c,v 1.51 2004/07/08 10:19:11 leo Exp $
  +$Id: key.c,v 1.52 2004/08/20 13:39:37 dan Exp $
   
   =head1 NAME
   
  @@ -357,6 +357,10 @@
       case KEY_pmc_FLAG | KEY_register_FLAG:
           reg = interpreter->pmc_reg.registers[PMC_int_val(key)];
           return VTABLE_get_string(interpreter, reg);
  +    case KEY_integer_FLAG:
  +        return string_from_int(interpreter, PMC_int_val(key));
  +    case KEY_integer_FLAG | KEY_register_FLAG:
  +        return string_from_int(interpreter, 
interpreter->int_reg.registers[PMC_int_val(key)]);
       default:
       case KEY_pmc_FLAG:
           return VTABLE_get_string(interpreter, key);
  
  
  

Reply via email to