James Hawkins wrote:
Changelog: * Remove redundant NULL checks before x_Release.
obj->Release() will read the vtable pointer from the object, and that will crash if obj is NULL, so these checks are needed. The following code will crash:
IUnknown *obj = NULL; IUnknown_Release(obj); You can see this looking at the definition of the IUnknown_Release macro: include/unknwn.h:#define IUnknown_Release(p) (p)->lpVtbl->Release(p) Mike
