pike.git / lib / modules / Array.pmod

version» Context lines:

pike.git/lib/modules/Array.pmod:6:   constant longest_ordered_sequence = __builtin.longest_ordered_sequence;   constant interleave_array = __builtin.interleave_array;      constant sort = __builtin.sort;   constant everynth = __builtin.everynth;   constant splice = __builtin.splice;   constant transpose = __builtin.transpose;      mixed map(mixed arr, mixed fun, mixed ... args)   { -  int e; +  int e,s;    mixed *ret;       if(mappingp(arr))    return mkmapping(indices(arr),map(values(arr),fun,@args));       if(multisetp(arr))    return mkmultiset(map(indices(arr,fun,@args)));       if(!(arrayp(arr) || objectp(arr)))    error("Bad argument 1 to Array.map().\n");       switch(sprintf("%t",fun))    {    case "int": -  return arr(@args); +  if(objectp(arr)) { +  ret=allocate(s=sizeof(arr)); +  for(e=0;e<s;e++) +  ret[e]=arr[e](@args); +  return ret; +  } +  else return arr(@args);       case "string": -  return column(arr, fun)(@args); +  if(objectp(arr)) { +  ret=allocate(s=sizeof(arr)); +  for(e=0;e<s;e++) +  ret[e]=arr[e][fun](@args); +  return ret; +  } +  else return column(arr, fun)(@args);       case "function":    case "program":    case "object": -  ret=allocate(sizeof(arr)); -  for(e=0;e<sizeof(arr);e++) +  ret=allocate(s=sizeof(arr)); +  for(e=0;e<s;e++)    ret[e]=fun(arr[e],@args);    return ret;       default:    error("Bad argument 2 to Array.map().\n");    }   }      mixed filter(mixed arr, mixed fun, mixed ... args)   {