this->ulSurfTime = 0;
this->pvRBrush = NULL;
this->hdev = NULL;
+
+ /* FIXME: should be done only in PEN constructor,
+ but our destructor needs it! */
+ this->dwStyleCount = 0;
+ this->pStyle = NULL;
}
BRUSH::~BRUSH(
GdiPoolFree(GetBrushAttrPool(), this->pBrushAttr);
}
- /* Delete the pattern bitmap */
- if (this->hbmPattern != NULL)
+ /* Delete the pattern bitmap (may have already been deleted during gdi cleanup) */
+ if (this->hbmPattern != NULL && GreIsHandleValid(this->hbmPattern))
{
GreSetBitmapOwner(this->hbmPattern, BASEOBJECT::OWNER::POWNED);
GreDeleteObject(this->hbmPattern);
}
+
+ /* Delete styles */
+ if ((this->pStyle != NULL) && !(this->flAttrs & BR_IS_DEFAULTSTYLE))
+ {
+ ExFreePoolWithTag(this->pStyle, GDITAG_PENSTYLE);
+ }
}
VOID