1 int create_window_handle(int x
);
2 void WIN_ReleasePtr(int x
);
3 void EnterCriticalSection(int x
);
4 void LeaveCriticalSection(int x
);
6 void USER_Unlock(void);
7 int GDI_GetObjPtr(int x
);
8 void GDI_ReleaseObj(int x
);
13 int b
= create_window_handle(a
);
18 if (d
= GDI_GetObjPtr(e
))
22 EnterCriticalSection(c
);
25 LeaveCriticalSection(c
);
33 LeaveCriticalSection(c
);
36 * check-name: WINE locking
37 * check-command: smatch -p=wine --spammy sm_wine_locking.c
40 sm_wine_locking.c:28 test1() error: double unlock 'create_window_handle:b'
41 sm_wine_locking.c:30 test1() warn: 'CriticalSection:c' is sometimes locked here and sometimes unlocked.
42 sm_wine_locking.c:33 test1() warn: inconsistent returns USER_Lock:: locked (30) unlocked (33)