crypt32: Pass context as context_t to Context_Release.
This commit is contained in:
parent
802a6bc1bb
commit
17e1dfef9b
@ -202,7 +202,7 @@ BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
|
|||||||
TRACE("(%p)\n", pCertContext);
|
TRACE("(%p)\n", pCertContext);
|
||||||
|
|
||||||
if (pCertContext)
|
if (pCertContext)
|
||||||
ret = Context_Release((void *)pCertContext, CertDataContext_Free);
|
ret = Context_Release(&cert_from_ptr(pCertContext)->base, CertDataContext_Free);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,30 +103,29 @@ CONTEXT_PROPERTY_LIST *Context_GetProperties(const void *context)
|
|||||||
return ptr->properties;
|
return ptr->properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL Context_Release(void *context, ContextFreeFunc dataContextFree)
|
BOOL Context_Release(context_t *context, ContextFreeFunc dataContextFree)
|
||||||
{
|
{
|
||||||
BASE_CONTEXT *base = BASE_CONTEXT_FROM_CONTEXT(context);
|
|
||||||
BOOL ret = TRUE;
|
BOOL ret = TRUE;
|
||||||
|
|
||||||
if (base->ref <= 0)
|
if (context->ref <= 0)
|
||||||
{
|
{
|
||||||
ERR("%p's ref count is %d\n", context, base->ref);
|
ERR("%p's ref count is %d\n", context, context->ref);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (InterlockedDecrement(&base->ref) == 0)
|
if (InterlockedDecrement(&context->ref) == 0)
|
||||||
{
|
{
|
||||||
TRACE("freeing %p\n", context);
|
TRACE("freeing %p\n", context);
|
||||||
if (!base->linked)
|
if (!context->linked)
|
||||||
{
|
{
|
||||||
ContextPropertyList_Free(base->properties);
|
ContextPropertyList_Free(context->properties);
|
||||||
dataContextFree(context);
|
dataContextFree(CONTEXT_FROM_BASE_CONTEXT(context));
|
||||||
} else {
|
} else {
|
||||||
Context_Release(CONTEXT_FROM_BASE_CONTEXT(base->linked), dataContextFree);
|
Context_Release(context->linked, dataContextFree);
|
||||||
}
|
}
|
||||||
CryptMemFree(base);
|
CryptMemFree(context);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
TRACE("%p's ref count is %d\n", context, base->ref);
|
TRACE("%p's ref count is %d\n", context, context->ref);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -346,7 +346,7 @@ BOOL WINAPI CertFreeCRLContext( PCCRL_CONTEXT pCrlContext)
|
|||||||
TRACE("(%p)\n", pCrlContext);
|
TRACE("(%p)\n", pCrlContext);
|
||||||
|
|
||||||
if (pCrlContext)
|
if (pCrlContext)
|
||||||
ret = Context_Release((void *)pCrlContext, CrlDataContext_Free);
|
ret = Context_Release(&crl_from_ptr(pCrlContext)->base, CrlDataContext_Free);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -415,7 +415,7 @@ typedef void (*ContextFreeFunc)(void *context);
|
|||||||
* If a data context has its ref count reach 0, calls dataContextFree on it.
|
* If a data context has its ref count reach 0, calls dataContextFree on it.
|
||||||
* Returns FALSE if the reference count is <= 0 when called.
|
* Returns FALSE if the reference count is <= 0 when called.
|
||||||
*/
|
*/
|
||||||
BOOL Context_Release(void *context, ContextFreeFunc dataContextFree) DECLSPEC_HIDDEN;
|
BOOL Context_Release(context_t *context, ContextFreeFunc dataContextFree) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Context property list functions
|
* Context property list functions
|
||||||
|
@ -478,7 +478,7 @@ BOOL WINAPI CertFreeCTLContext(PCCTL_CONTEXT pCTLContext)
|
|||||||
TRACE("(%p)\n", pCTLContext);
|
TRACE("(%p)\n", pCTLContext);
|
||||||
|
|
||||||
if (pCTLContext)
|
if (pCTLContext)
|
||||||
ret = Context_Release((void *)pCTLContext, CTLDataContext_Free);
|
ret = Context_Release(&ctl_from_ptr(pCTLContext)->base, CTLDataContext_Free);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user