[PATCH] vbscript: Implemented Asc

Nikolay Sivov bunglehead at gmail.com
Mon Mar 2 02:17:27 CST 2015


On 02.03.2015 11:12, Shuai Meng wrote:
> +    HRESULT hres;
> +    BSTR bstr;
> +    WCHAR ret;
> +
> +    TRACE("(%s)\n", debugstr_variant(arg));
> +
> +    switch(V_VT(arg)) {
> +    case VT_NULL:
> +        return MAKE_VBSERROR(VBSE_ILLEGAL_NULL_USE);
> +    case VT_EMPTY:
> +        return MAKE_VBSERROR(VBSE_ILLEGAL_FUNC_CALL);
> +    case VT_BSTR:
> +        bstr = V_BSTR(arg);
> +    default:
> +        hres = to_string(arg, &bstr);
> +        if(FAILED(hres))
> +            return hres;
> +    }
> +
> +    ret = bstr[0];
> +    if(ret == 0)
> +        return MAKE_VBSERROR(VBSE_ILLEGAL_FUNC_CALL);
> +    return return_short(res, ret);

Looks like you need to handle VT_NULL explicitly and after that only 
distinguish between VT_BSTR or the rest. Also you're leaking memory and 
missing a 'break'.



More information about the wine-devel mailing list