diff --git a/lib/modules/Array.pmod b/lib/modules/Array.pmod index b16aad3d64cf2843ccca3f3e26b60f825c50b258..f250f10f7640be9d8d456dcacef1a1bd56227692 100644 --- a/lib/modules/Array.pmod +++ b/lib/modules/Array.pmod @@ -5,11 +5,11 @@ mixed map(mixed arr, mixed fun, mixed ... args) int e; mixed *ret; - switch(sprintf("%t",fun)) - { - case "mapping": + if(mappingp(arr)) return mkmapping(indices(arr),map(values(arr),fun,@args)); + switch(sprintf("%t",fun)) + { case "int": return arr(@args);