[Mono-dev] [PATCH] String.Split() broken behavior

Tyler Larson mono-devel at tlarson.com
Fri Oct 26 14:18:30 EDT 2007


Paolo Molaro wrote:
> On 10/18/07 mono-devel at tlarson.com wrote:
>   
>> On the contrary, the code IS optimized, which is why I removed it that 
>>     
>
> Well, moving the code to always transition to unmanaged is not much
> of an optimization.
>
>   

Understood. Note, however, that the optimization I'm talking about comes 
comes from a redesign of the underlying split algorithm rather than 
simply running unmanaged.

The whole reason why the unmanaged code was modified at all (as opposed 
to just changing the C# counterpart) is because that's where the code 
that needed to be optimized. The original implementation did what it 
could without changing the unmanaged code, which necessarily resulted in 
an inefficient algorithm. That's why he marked the code as requiring 
optimization. The *only way* to effect that optimization was to optimize 
the unmanaged code, and remove the kludge in the C# code.

The relevant detail here is that the original author recognized that his 
implementation was sub-optimal, but didn't know it was also incorrect, 
hence the optimization attribute. The patch removes his algorithm 
completely, replacing it with something fundamentally different. The 
optimization attribute should be removed because the algorithm to which 
it applies is no longer present. I didn't want to make a big deal about 
it; it was just the appropriate thing to do.




More information about the Mono-devel-list mailing list