oleaut32: add VarBstrCmp binary comparison for LCID==0

Dmitry Timoshkov dmitry at codeweavers.com
Fri Dec 1 02:36:32 CST 2006


"Charles Blacklock" <charles at diagnos.co.uk> wrote:

> +    if (lcid == 0)
> +    {
> +      ret = memcmp(pbstrLeft, pbstrRight, min(SysStringByteLen(pbstrLeft), SysStringByteLen(pbstrRight)));
> +      if (ret < 0)
> +        return VARCMP_LT;
> +      if (ret > 0)
> +        return VARCMP_GT;
> +      if (SysStringByteLen(pbstrLeft) < SysStringByteLen(pbstrRight))
> +        return VARCMP_LT;
> +      if (SysStringByteLen(pbstrLeft) > SysStringByteLen(pbstrRight))
> +        return VARCMP_GT;
> +      return VARCMP_EQ;
> +    }

It would be much more effective to call SysStringByteLen only once for each
string instead of calling it again and again after a failing comparison.

-- 
Dmitry.



More information about the wine-devel mailing list