pike.git / src / las.c

version» Context lines:

pike.git/src/las.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   /**/   #include "global.h" - RCSID("$Id: las.c,v 1.156 1999/12/30 21:57:28 grubba Exp $"); + RCSID("$Id: las.c,v 1.157 1999/12/30 22:20:56 grubba Exp $");      #include "language.h"   #include "interpret.h"   #include "las.h"   #include "array.h"   #include "object.h"   #include "stralloc.h"   #include "dynamic_buffer.h"   #include "lex.h"   #include "pike_types.h"
pike.git/src/las.c:3693:    free_node(n);    n=0;    break;       case 1:    if(catch_level && IS_ZERO(sp-1))    {    pop_stack();    return n;    } -  if (n->token != F_SOFT_CAST) { -  new = mksvaluenode(sp-1); -  } else { +  if (n->token == F_SOFT_CAST) {    new = mksoftcastnode(n->type, mksvaluenode(sp-1)); -  } -  if (n->type && (!new->type || pike_types_le(n->type,new->type))) { -  if (new->type) free_string(new->type); +  } else { +  new = mksvaluenode(sp-1); +  if (n->type && (!new->type || ((n->type != new->type) && +  pike_types_le(n->type,new->type)))) { +  if (new->type) +  free_string(new->type);    copy_shared_string(new->type,n->type);    } -  +  }    free_node(n);    n = new;    pop_stack();    break;       default:    if (n->token != F_SOFT_CAST) {    free_node(n);    n=NULL;    while(args--)