pike.git / src / pike_types.c

version» Context lines:

pike.git/src/pike_types.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: pike_types.c,v 1.89 1999/12/11 23:37:29 grubba Exp $"); + RCSID("$Id: pike_types.c,v 1.90 1999/12/12 00:26:08 mast Exp $");   #include <ctype.h>   #include "svalue.h"   #include "pike_types.h"   #include "stralloc.h"   #include "stuff.h"   #include "array.h"   #include "program.h"   #include "constants.h"   #include "object.h"   #include "multiset.h"
pike.git/src/pike_types.c:2190:       /* check the returntype */    if (EXTRACT_UCHAR(b) != T_VOID) {    /* FIXME: Check if a has type void here? */    if(!low_pike_types_le(a,b)) return 0;    }    break;       case T_MAPPING:    /* -  * mapping(A:B) <= mapping(C:D) iff ((C <= A) || (A <= C)) && B <= D. -  * -  * The reason for the weak index type test, is that it's not an error -  * to index a mapping with a nonexistant key. +  * mapping(A:B) <= mapping(C:D) iff A <= C && B <= D.    */ -  if(!low_pike_types_le(++b,++a) && !low_pike_types_le(a, b)) return 0; +  if(!low_pike_types_le(++a, ++b)) return 0;    return low_pike_types_le(a+type_length(a),b+type_length(b));       case T_OBJECT:   #if 0    if(extract_type_int(a+2) || extract_type_int(b+2))    {    fprintf(stderr,"Type match1: ");    stupid_describe_type(a,type_length(a));    fprintf(stderr,"Type match2: ");    stupid_describe_type(b,type_length(b));
pike.git/src/pike_types.c:2264:       INT32 bmin=extract_type_int(b+1);    INT32 bmax=extract_type_int(b+1+sizeof(INT32));       if(amin < bmin || amax > bmax) return 0;    break;    }          case T_MULTISET: -  /* It's not an error to index a multiset with a nonexistant key. */ -  if(!low_pike_types_le(++a,++b) && -  !low_pike_types_le(b, a)) return 0; -  break; -  +     case T_ARRAY:    if(!low_pike_types_le(++a,++b)) return 0;       case T_FLOAT:    case T_STRING:    case T_TYPE:    case T_PROGRAM:    case T_ZERO:    case T_VOID:    case T_MIXED: