pike.git / src / pike_types.c

version» Context lines:

pike.git/src/pike_types.c:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: pike_types.c,v 1.282 2007/04/06 11:16:33 grubba Exp $ + || $Id: pike_types.c,v 1.283 2007/04/06 15:56:23 grubba Exp $   */      #include "global.h"   #include <ctype.h>   #include "svalue.h"   #include "pike_types.h"   #include "stralloc.h"   #include "stuff.h"   #include "array.h"   #include "program.h"
pike.git/src/pike_types.c:2708: Inside #if defined(PIKE_DEBUG)
   struct pike_type *res;   #ifdef PIKE_DEBUG    if(a_markers[m]->type == a->type)    Pike_fatal("Cyclic type!\n");    if(a_markers[m]->type == T_OR &&    a_markers[m]->car->type == a->type)    Pike_fatal("Cyclic type!\n");   #endif    a_markers[m] = NULL;    res = low_match_types(t, b, flags); +  if (a_markers[m]) { +  struct pike_type *tmp; +  a_markers[m] = or_pike_types(tmp = a_markers[m], t, 0); +  free_type(tmp); +  free_type(t); +  } else {    a_markers[m] = t; -  +  }    return res;    }    else    return low_match_types(mixed_type_string, b, flags);    }    }       switch(b->type)    {    case T_AND:
pike.git/src/pike_types.c:2798:    if(b_markers[m])    {    struct pike_type *t = b_markers[m];    struct pike_type *res;   #ifdef PIKE_DEBUG    if(b_markers[m]->type == b->type)    Pike_fatal("Cyclic type!\n");   #endif    b_markers[m] = NULL;    res = low_match_types(a, t, flags); +  if (b_markers[m]) { +  struct pike_type *tmp; +  b_markers[m] = or_pike_types(tmp = b_markers[m], t, 0); +  free_type(tmp); +  free_type(t); +  } else {    b_markers[m] = t; -  +  }    return res;    }    else    return low_match_types(a, mixed_type_string, flags);    }    }       /* 'mixed' matches anything */       if((a->type == T_ZERO || a->type == T_MIXED) &&