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

Dmitry Timoshkov dtimoshkov на etersoft.ru
Сб Янв 5 09:34:54 MSK 2013


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;

выглядит гораздо проще и понятнее.

DocumentPropertiesA() должен быть так же исправлен, чтобы не передавать мусор
дальше.

Все эти исправления как 3 отдельных патча нужно отправить в winehq.

-- 
Dmitry.


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