transforms->GetConsolidation(getter_AddRefs(localTM));
transforms->GetConsolidationMatrix(getter_AddRefs(localTM));
nsSVGForeignObjectFrame::GetCanvasTM(){  if (!mCanvasTM) {    // get our parent's tm and append local transforms (if any):    NS_ASSERTION(mParent, "null parent");    nsISVGContainerFrame *containerFrame;    mParent->QueryInterface(NS_GET_IID(nsISVGContainerFrame), (void**)&containerFrame);    if (!containerFrame) {      NS_ERROR("invalid parent");      return nsnull;    }    nsCOMPtr<nsIDOMSVGMatrix> parentTM = containerFrame->GetCanvasTM();    NS_ASSERTION(parentTM, "null TM");    // got the parent tm, now check for local tm:    nsCOMPtr<nsIDOMSVGMatrix> localTM;    {      nsCOMPtr<nsIDOMSVGTransformable> transformable = do_QueryInterface(mContent);      NS_ASSERTION(transformable, "wrong content element");      nsCOMPtr<nsIDOMSVGAnimatedTransformList> atl;      transformable->GetTransform(getter_AddRefs(atl));      NS_ASSERTION(atl, "null animated transform list");      nsCOMPtr<nsIDOMSVGTransformList> transforms;      atl->GetAnimVal(getter_AddRefs(transforms));      NS_ASSERTION(transforms, "null transform list");      PRUint32 numberOfItems;      transforms->GetNumberOfItems(&numberOfItems);      if (numberOfItems>0)        transforms->GetConsolidation(getter_AddRefs(localTM));    }        if (localTM)      parentTM->Multiply(localTM, getter_AddRefs(mCanvasTM));    else      mCanvasTM = parentTM;  }  nsIDOMSVGMatrix* retval = mCanvasTM.get();  NS_IF_ADDREF(retval);  return retval;}