GetCoveredRegion(getter_AddRefs(before));
if (!mFill.IsEmpty() || !mStroke.IsEmpty()) GetCoveredRegion(getter_AddRefs(before));
nsSVGLibartPathGeometry::Update(PRUint32 updatemask, nsISVGRendererRegion **_retval){  *_retval = nsnull;  const unsigned long pathmask =    nsISVGPathGeometrySource::UPDATEMASK_PATH |    nsISVGGeometrySource::UPDATEMASK_CTM;  const unsigned long fillmask =     pathmask |    nsISVGGeometrySource::UPDATEMASK_FILL_RULE;  const unsigned long strokemask =    pathmask |    nsISVGGeometrySource::UPDATEMASK_STROKE_WIDTH       |    nsISVGGeometrySource::UPDATEMASK_STROKE_LINECAP     |    nsISVGGeometrySource::UPDATEMASK_STROKE_LINEJOIN    |    nsISVGGeometrySource::UPDATEMASK_STROKE_MITERLIMIT  |    nsISVGGeometrySource::UPDATEMASK_STROKE_DASH_ARRAY  |    nsISVGGeometrySource::UPDATEMASK_STROKE_DASHOFFSET;  const unsigned long coveredregionmask =    fillmask                                            |    strokemask                                          |    nsISVGGeometrySource::UPDATEMASK_FILL_PAINT_TYPE    |    nsISVGGeometrySource::UPDATEMASK_STROKE_PAINT_TYPE;    nsCOMPtr<nsISVGRendererRegion> before;  GetCoveredRegion(getter_AddRefs(before));  if ((updatemask & pathmask)!=0){    ClearPath();  }  if ((updatemask & fillmask)!=0)    ClearFill();  if ((updatemask & strokemask)!=0)    ClearStroke();  if ((updatemask & coveredregionmask)!=0) {    ClearCoveredRegion();    nsCOMPtr<nsISVGRendererRegion> after;    GetCoveredRegion(getter_AddRefs(after));    if (after)      after->Combine(before, _retval);  }  else if (updatemask != nsISVGGeometrySource::UPDATEMASK_NOTHING) {    *_retval = before;    NS_IF_ADDREF(*_retval);  }  return NS_OK;}