[Wine-devel] [Wine-patches] [eter-2.0.0] [2/2] winspool.drv: Get default DEVMODEW. (eterbug #8821)[resend]

Tatyana Fokina tatyana на etersoft.ru
Вт Янв 8 11:12:58 MSK 2013


здравствуйте, Дмитрий!

Dmitry Timoshkov писал 05.01.2013 09:34:
> Tatyana Fokina <tatyana на etersoft.ru> wrote:
>
>> -    if(!pDeviceName) {
>> +    if(!pDeviceName || !strcmp(pDeviceName,"")) {
>
> strcmp() здесь не нужен, обычно делают так:
>
> if(!pDeviceName || !*pDeviceName)
>
> Похоже, что эта часть патча должна быть отправлена отдельно.
Спасибо, это исправила.


>> +    DWORD size;
>> +    DWORD buflen = sizeof(DEVMODEW);
>> +    LPBYTE ptr = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 
>> buflen);
>> +
>> +    if(!(fMode&DM_IN_BUFFER))
>> +    {
>> +        WINSPOOL_GetDefaultDevMode(ptr, buflen, &size);
>> +        if(!pDevModeInput)
>> +            pDevModeInput = HeapAlloc(GetProcessHeap(), 
>> HEAP_ZERO_MEMORY, size);
>> +        memcpy(pDevModeInput, ptr, size);
>> +    }
>
> Столько ненужного кода, только для того. чтобы избежать вызова
> DEVMODEdupWtoA()
> если DM_IN_BUFFER не установлен?
>
> pDevModeInputA = (fMode & DM_IN_BUFFER) ?
> DEVMODEdupWtoA(pDevModeInput) : NULL;
>
> выглядит гораздо проще и понятнее.
А вот здесь буду снова отстаивать свою точку зрения :)
Весь смысл как раз в том, чтобы вызвать DEVMODEdupWtoA(), но перед этим 
получив в pDevModeInput значения по умолчанию. Возможно реализация не 
слишком изящна. Впрочем, если Вам кажется, что лучше оставть NULL, то 
спорить не буду больше.


Подробная информация о списке рассылки Wine-devel