comctl32/toolbar.c: Fix Lingvo 9.0 crashes on startup [Resend 2]

Nikolay Sivov bunglehead at gmail.com
Sun Jul 12 07:46:01 CDT 2009


Vladimir Pankratov wrote:
> Nikolay Sivov wrote:
>
>> The very first one was better (when you fixed only division by zero).
>> Now you're changing path earlier:
>> ---
>> + if(rows <= 0) rows = 1;
>> ---
>> There's no tests currently for that (<=0 isn't tested), could you add 
>> them (to test_setrows() I suppose)? 
>
> What's write in this test?
>
> Maybe something like this:
>
> RECT rc;
> int rows;
>
> memset(&rc, 0xCC, sizeof(rc));
> SendMessageA(hToolbar, TB_SETROWS, MAKEWPARAM(0, TRUE), (LPARAM) &rc);
>
> rows = SendMessageA(hToolbar, TB_GETROWS, 0, 0);
>
> ok(rows == 1, "Unexpected number of rows %d (expected %d)\n", rows, 1);
>
> memset(&rc, 0xCC, sizeof(rc));
> SendMessageA(hToolbar, TB_SETROWS, MAKEWPARAM(-1, TRUE), (LPARAM) &rc);
>
> rows = SendMessageA(hToolbar, TB_GETROWS, 0, 0);
>
> ok(rows == 1, "Unexpected number of rows %d (expected %d)\n", rows, 1);
>
Yeah, just add 3 new lines here for -2 (to be sure, sometimes -1 has 
special meaning), -1 and 0:
---
static tbrows_result_t tbrows_results[] =
{
    {1, TRUE,  1}, /* 0: Simple case 9 in a row */
    {2, TRUE,  2}, /* 1: Another simple case 5 on one row, 4 on another*/
    {3, FALSE, 3}, /* 2: 3 lines - should be 3 lines of 3 buttons */
    {8, FALSE, 5}, /* 3: 8 lines - should be 5 lines of 2 buttons */
    {8, TRUE,  9}, /* 4: 8 lines but grow - should be 9 lines */
    {1, TRUE,  1}  /* 5: Back to simple case */
};
---




More information about the wine-devel mailing list