Peringatan C26167
Mungkin melepaskan kunci 'kunci' yang tidak dipantau dalam fungsi 'func'.
Peringatan C26167 menyerupan peringatan C26117 kecuali bahwa tingkat keyakinan lebih rendah. Misalnya, fungsi mungkin berisi kesalahan anotasi.
Contoh
Kode berikut akan menghasilkan C26167 dan C26110.
typedef struct _DATA {
CRITICAL_SECTION cs;
} DATA;
_Releases_lock_(p->cs) void Leave(DATA* p) {
LeaveCriticalSection(&p->cs); // OK
}
void ReleaseUnheldLock(DATA* p) { // Warning C26167
int i = 0;
Leave(p); // Warning C26110
}
Kode berikut akan memperbaiki peringatan ini.
typedef struct _DATA {
CRITICAL_SECTION cs;
} DATA;
_Releases_lock_(p->cs) void Leave(DATA* p) {
LeaveCriticalSection( &p->cs );
}
void ReleaseUnheldLock( DATA* p ) {
EnterCriticalSection( &p->cs );
int i = 0;
Leave(p);
}