This function is responsible for 2.2% of all heap allocation (calls) in CL. This change avoids all of them in the (presumably) common case where none of the parameters require splitting. It also slightly reduces the compiler's instruction count.