diff --git a/src/builtin_functions.c b/src/builtin_functions.c index e3cef7ee9a038f26dc44d1365d376a6f0cd108f7..36c97547bec770d86b604c8e65330a842b2852da 100644 --- a/src/builtin_functions.c +++ b/src/builtin_functions.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: builtin_functions.c,v 1.295 2000/08/10 09:51:51 per Exp $"); +RCSID("$Id: builtin_functions.c,v 1.296 2000/08/14 17:41:10 grubba Exp $"); #include "interpret.h" #include "svalue.h" #include "pike_macros.h" @@ -83,7 +83,8 @@ PMOD_EXPORT void debug_f_aggregate(INT32 args) void f_hash(INT32 args) { - INT32 i; + size_t i; + if(!args) SIMPLE_TOO_FEW_ARGS_ERROR("hash",1); if(Pike_sp[-args].type != T_STRING) @@ -122,7 +123,7 @@ void f_hash(INT32 args) i%=(unsigned INT32)Pike_sp[1-args].u.integer; } pop_n_elems(args); - push_int(i); + push_int64(i); } PMOD_EXPORT void f_copy_value(INT32 args) @@ -251,7 +252,7 @@ static struct case_info *find_ci_shift0(int c) case CIM_LOWERDELTA: C = c - ci->data; break; \ case CIM_CASEBIT: C = c & ~ci->data; break; \ case CIM_CASEBITOFF: C = ((c - ci->data)& ~ci->data) + ci->data; break; \ - default: fatal("lower_case(): Unknown case_info mode: %d\n", ci->mode); \ + default: fatal("upper_case(): Unknown case_info mode: %d\n", ci->mode); \ } \ } \ } while(0) @@ -272,7 +273,7 @@ static struct case_info *find_ci_shift0(int c) PMOD_EXPORT void f_lower_case(INT32 args) { - INT_TYPE i; + ptrdiff_t i; struct pike_string *orig; struct pike_string *ret; get_all_args("lower_case", args, "%W", &orig); @@ -311,7 +312,7 @@ PMOD_EXPORT void f_lower_case(INT32 args) PMOD_EXPORT void f_upper_case(INT32 args) { - INT_TYPE i; + ptrdiff_t i; struct pike_string *orig; struct pike_string *ret; int widen = 0; @@ -431,7 +432,7 @@ void f_query_num_arg(INT32 args) PMOD_EXPORT void f_search(INT32 args) { - INT32 start; + ptrdiff_t start; if(args < 2) SIMPLE_TOO_FEW_ARGS_ERROR("search", 2); @@ -466,7 +467,7 @@ PMOD_EXPORT void f_search(INT32 args) Pike_sp[1-args].u.string, start); pop_n_elems(args); - push_int(start); + push_int64(start); break; } @@ -485,7 +486,7 @@ PMOD_EXPORT void f_search(INT32 args) } start=array_search(Pike_sp[-args].u.array,Pike_sp+1-args,start); pop_n_elems(args); - push_int(start); + push_int64(start); break; case T_MAPPING: @@ -541,7 +542,7 @@ PMOD_EXPORT void f_has_prefix(INT32 args) { \ PIKE_CONCAT(p_wchar,S1) *s1 = PIKE_CONCAT(STR,S1)(a); \ PIKE_CONCAT(p_wchar,S2) *s2 = PIKE_CONCAT(STR,S2)(b); \ - int len = b->len; \ + ptrdiff_t len = b->len; \ while(len-- && (s1[len] == s2[len])) \ ; \ pop_n_elems(args); \ @@ -701,9 +702,9 @@ PMOD_EXPORT void f_backtrace(INT32 args) { INT32 args; args=f->num_args; - args=MINIMUM(f->num_args, Pike_sp - f->locals); + args = DO_NOT_WARN((INT32) MINIMUM(f->num_args, Pike_sp - f->locals)); if(of) - args=MINIMUM(f->num_args, of->locals - f->locals); + args = DO_NOT_WARN((INT32)MINIMUM(f->num_args,of->locals - f->locals)); args=MAXIMUM(args,0); ITEM(a)[frames].u.array=i=allocate_array_no_init(3+args,0); @@ -1041,8 +1042,8 @@ PMOD_EXPORT void f_string_to_unicode(INT32 args) { struct pike_string *in; struct pike_string *out = NULL; - INT32 len; - int i; + ptrdiff_t len; + ptrdiff_t i; get_all_args("string_to_unicode", args, "%W", &in); @@ -1086,7 +1087,7 @@ PMOD_EXPORT void f_string_to_unicode(INT32 args) /* 32 bit characters -- Is someone writing in Klingon? */ { p_wchar2 *str2 = STR2(in); - int j; + ptrdiff_t j; len = in->len * 2; /* Check how many extra wide characters there are. */ for(i = in->len; i--;) { @@ -1148,7 +1149,7 @@ PMOD_EXPORT void f_unicode_to_string(INT32 args) { struct pike_string *in; struct pike_string *out = NULL; - INT32 len; + ptrdiff_t len; get_all_args("unicode_to_string", args, "%S", &in); @@ -1172,7 +1173,7 @@ PMOD_EXPORT void f_unicode_to_string(INT32 args) #else /* Little endian */ { - int i; + ptrdiff_t i; p_wchar1 *str1 = STR1(out); for (i = len; i--;) { @@ -1188,7 +1189,7 @@ PMOD_EXPORT void f_unicode_to_string(INT32 args) void f_string_to_utf8(INT32 args) { - int len; + ptrdiff_t len; struct pike_string *in; struct pike_string *out; int i,j; @@ -1624,9 +1625,9 @@ PMOD_EXPORT void f_crypt(INT32 args) } else { unsigned int foo; /* Sun CC want's this :( */ foo=my_rand(); - salt[0] = choise[foo % (unsigned int) strlen(choise)]; + salt[0] = choise[foo % (size_t) strlen(choise)]; foo=my_rand(); - salt[1] = choise[foo % (unsigned int) strlen(choise)]; + salt[1] = choise[foo % (size_t) strlen(choise)]; saltp=salt; } #ifdef HAVE_CRYPT @@ -1678,8 +1679,9 @@ PMOD_EXPORT void f_destruct(INT32 args) PMOD_EXPORT void f_indices(INT32 args) { - INT32 size; + ptrdiff_t size; struct array *a; + if(args < 1) SIMPLE_TOO_FEW_ARGS_ERROR("indices", 1); @@ -1944,7 +1946,7 @@ static node *fix_aggregate_mapping_type(node *n) PMOD_EXPORT void f_values(INT32 args) { - INT32 size; + ptrdiff_t size; struct array *a; if(args < 1) SIMPLE_TOO_FEW_ARGS_ERROR("values", 1); @@ -2162,18 +2164,20 @@ struct tupel static int replace_sortfun(struct tupel *a,struct tupel *b) { - return my_quick_strcmp(a->ind,b->ind); + return DO_NOT_WARN((int)my_quick_strcmp(a->ind, b->ind)); } /* Magic, magic and more magic */ static int find_longest_prefix(char *str, - INT32 len, + ptrdiff_t len, int size_shift, struct tupel *v, INT32 a, INT32 b) { - INT32 tmp,c,match=-1; + INT32 c,match=-1; + ptrdiff_t tmp; + while(a<b) { c=(a+b)/2; @@ -2235,7 +2239,8 @@ static struct pike_string * replace_many(struct pike_string *str, struct array *from, struct array *to) { - INT32 s,length,e,num; + INT32 e,num; + ptrdiff_t s, length; struct string_builder ret; struct tupel *v; @@ -2297,14 +2302,15 @@ static struct pike_string * replace_many(struct pike_string *str, for(s=0;length > 0;) { - INT32 a,b,ch; + INT32 a,b; + ptrdiff_t ch; ch=index_shared_string(str,s); - if(ch<(INT32)NELEM(set_end)) b=set_end[ch]; else b=num; + if(ch<(ptrdiff_t)NELEM(set_end)) b=set_end[ch]; else b=num; if(b) { - if(ch<(INT32)NELEM(set_start)) a=set_start[ch]; else a=0; + if(ch<(ptrdiff_t)NELEM(set_start)) a=set_start[ch]; else a=0; a=find_longest_prefix(str->str+(s << str->size_shift), length, @@ -2313,7 +2319,7 @@ static struct pike_string * replace_many(struct pike_string *str, if(a!=-1) { - ch=v[a].ind->len; + ch = v[a].ind->len; if(!ch) ch=1; s+=ch; length-=ch; @@ -2321,7 +2327,8 @@ static struct pike_string * replace_many(struct pike_string *str, continue; } } - string_builder_putchar(&ret, ch); + string_builder_putchar(&ret, + DO_NOT_WARN((INT32)ch)); s++; length--; } @@ -2546,7 +2553,7 @@ PMOD_EXPORT void f_sleep(INT32 args) if(left<=0.0) break; #ifdef __NT__ - Sleep((int)(left*1000)); + Sleep(DO_NOT_WARN((int)(left*1000))); #elif defined(HAVE_POLL) poll(NULL,0,(int)(left*1000)); #else @@ -2944,16 +2951,16 @@ PMOD_EXPORT void f_mktime (INT32 args) #endif /* Parse a sprintf/sscanf-style format string */ -static int low_parse_format(p_wchar0 *s, int slen) +static ptrdiff_t low_parse_format(p_wchar0 *s, ptrdiff_t slen) { - int i; - int offset = 0; + ptrdiff_t i; + ptrdiff_t offset = 0; int num_percent_percent = 0; struct svalue *old_sp = Pike_sp; for (i=offset; i < slen; i++) { if (s[i] == '%') { - int j; + ptrdiff_t j; if (i != offset) { push_string(make_shared_binary_string0(s + offset, i)); if ((Pike_sp != old_sp+1) && (Pike_sp[-2].type == T_STRING)) { @@ -3012,7 +3019,7 @@ static int low_parse_format(p_wchar0 *s, int slen) i += 2; break; case '}': - f_aggregate(Pike_sp - old_sp); + f_aggregate(DO_NOT_WARN(Pike_sp - old_sp)); return i; /* Set */ case '[': @@ -3039,7 +3046,7 @@ static int low_parse_format(p_wchar0 *s, int slen) } } - f_aggregate(Pike_sp - old_sp); + f_aggregate(DO_NOT_WARN(Pike_sp - old_sp)); return i; } @@ -3047,7 +3054,7 @@ static void f_parse_format(INT32 args) { struct pike_string *s = NULL; struct array *a; - int len; + ptrdiff_t len; get_all_args("parse_format", args, "%W", &s); @@ -4269,7 +4276,7 @@ PMOD_EXPORT void f__memory_usage(INT32 args) call_callback(&memory_usage_callback, (void *)0); - f_aggregate_mapping(Pike_sp-ss); + f_aggregate_mapping(DO_NOT_WARN(Pike_sp - ss)); } PMOD_EXPORT void f__next(INT32 args) diff --git a/src/las.c b/src/las.c index a61025c32fe9fd6c01b970bb8af2ca6a3d5edf62..a1e6aa3d10a72af17d0e0aa099e133a9d5fae85a 100644 --- a/src/las.c +++ b/src/las.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: las.c,v 1.188 2000/07/18 16:22:37 grubba Exp $"); +RCSID("$Id: las.c,v 1.189 2000/08/14 17:48:49 grubba Exp $"); #include "language.h" #include "interpret.h" @@ -302,7 +302,7 @@ BLOCK_ALLOC(node_s, NODES) struct node_hash_table node_hash; -static unsigned INT32 hash_node(node *n) +static size_t hash_node(node *n) { return hashmem((unsigned char *)&(n->token), sizeof(node) - OFFSETOF(node_s, token), sizeof(node)); @@ -310,7 +310,7 @@ static unsigned INT32 hash_node(node *n) static void add_node(node *n) { - unsigned INT32 hval = n->hash % node_hash.size; + size_t hval = n->hash % node_hash.size; n->next = node_hash.table[hval]; node_hash.table[hval] = n; @@ -344,7 +344,7 @@ static void sub_node(node *n) static node *freeze_node(node *orig) { - unsigned INT32 hash = hash_node(orig); + size_t hash = hash_node(orig); node *n; /* free_node() wants a correct hash */ @@ -483,9 +483,11 @@ void debug_free_node(node *n) #ifdef SHARED_NODES { - unsigned INT32 hash; + size_t hash; if ((hash = hash_node(n)) != n->hash) { - fprintf(stderr, "Hash-value is bad 0x%08x != 0x%08x\n", hash, n->hash); + fprintf(stderr, "Hash-value is bad 0x%08x != 0x%08lx\n", + DO_NOT_WARN((unsigned long)hash), + DO_NOT_WARN((unsigned long)n->hash)); print_tree(n); fatal("token:%d, car:%p cdr:%p file:%s line:%d\n", n->token, _CAR(n), _CDR(n), n->current_file->str, n->line_number); @@ -1123,7 +1125,7 @@ void resolv_constant(node *n) char fnord[1000]; if(is_const(n)) { - int args=eval_low(n); + ptrdiff_t args=eval_low(n); if(args==1) return; if(args!=-1) @@ -1133,7 +1135,7 @@ void resolv_constant(node *n) yyerror("Expected constant, got void expression"); }else{ yyerror("Possible internal error!!!"); - pop_n_elems(args-1); + pop_n_elems(DO_NOT_WARN(args-1)); return; } } @@ -1294,9 +1296,9 @@ node *index_node(node *n, char *node_name, struct pike_string *id) default: { - int c; + ptrdiff_t c; DECLARE_CYCLIC(); - c=(int)BEGIN_CYCLIC(Pike_sp[-1].u.refs, id); + c = (ptrdiff_t)BEGIN_CYCLIC(Pike_sp[-1].u.refs, id); if(c>1) { my_yyerror("Recursive module dependency in '%s'.",id->str); @@ -3697,12 +3699,12 @@ static void check_evaluation_time(struct callback *cb,void *tmp,void *ignored) } } -int eval_low(node *n) +ptrdiff_t eval_low(node *n) { unsigned INT16 num_strings, num_constants; INT32 jump; struct svalue *save_sp = Pike_sp; - int ret; + ptrdiff_t ret; #ifdef PIKE_DEBUG if(l_flag > 3 && n) @@ -3808,7 +3810,7 @@ int eval_low(node *n) static node *eval(node *n) { node *new; - int args; + ptrdiff_t args; if(!is_const(n) || n->token==':') return n; diff --git a/src/las.h b/src/las.h index 74d388ff9ae87cb0e70dda9a914e03a2d233e246..a602fd25d20eabe06678f771e24a503698927cf8 100644 --- a/src/las.h +++ b/src/las.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: las.h,v 1.40 2000/07/12 12:38:41 grubba Exp $ + * $Id: las.h,v 1.41 2000/08/14 17:48:50 grubba Exp $ */ #ifndef LAS_H #define LAS_H @@ -151,7 +151,7 @@ void print_tree(node *n); struct used_vars; void fix_type_field(node *n); struct timer_oflo; -int eval_low(node *n); +ptrdiff_t eval_low(node *n); int dooptcode(struct pike_string *name, node *n, struct pike_string *type, diff --git a/src/pike_types.h b/src/pike_types.h index fb7a27a7c9f702a0a93018278bddda501f9c0dbf..8abe085b94d937173f5243429294811dcea80150 100644 --- a/src/pike_types.h +++ b/src/pike_types.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: pike_types.h,v 1.41 2000/08/09 12:49:28 grubba Exp $ + * $Id: pike_types.h,v 1.42 2000/08/14 17:48:50 grubba Exp $ */ #ifndef PIKE_TYPES_H #define PIKE_TYPES_H @@ -39,7 +39,7 @@ struct node_s { #if defined(SHARED_NODES) unsigned INT32 refs; - unsigned INT32 hash; + size_t hash; struct node_s *next; #endif /* SHARED_NODES */ #ifdef PIKE_DEBUG @@ -62,7 +62,7 @@ struct node_identifier { ptrdiff_t refs; struct node_identifier *next; - unsigned INT32 hash; + size_t hash; INT16 token; union node_data u; };