Jacek Caban (@jacek) commented about dlls/mshtml/htmlelem.c:
return hres;
attr = find_attr_in_list(attrs, id, NULL);
IHTMLAttributeCollection_Release(&attrs->IHTMLAttributeCollection_iface);
if(attr) {
hres = get_elem_attr_value_by_dispid(This, id, &attr->value);
if(FAILED(hres))
return hres;
if(!attr->name) {
hres = dispex_prop_name(&This->node.event_target.dispex, id, &attr->name);
if(FAILED(hres))
return hres;
}
attr->elem = NULL;
list_remove(&attr->entry);
IHTMLDOMNode_Release(&This->node.IHTMLDOMNode_iface);
I think it would be better to use `attr->elem` for the release. I know that it's the same in this case, but that would make it self-explanatory.