Uyarı C26167
Büyük olasılıkla 'func' işlevinde rafsız kilit 'lock' serbest bırakıyoruz.
Uyarı C26167, güvenilirlik düzeyinin düşük olması dışında C26117 uyarısını andırır. Örneğin, işlev ek açıklama hataları içerebilir.
Örnekler
Aşağıdaki kod C26167 ve C26110 oluşturur.
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
}
Aşağıdaki kod bu uyarıları düzeltecektir.
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);
}