if (NS_CONTENT_ATTR_HAS_VALUE == content->GetAttribute(kNameSpaceID_None, aAttributeAtom, values)) {
if (NS_CONTENT_ATTR_HAS_VALUE == content->GetAttr(kNameSpaceID_None, aAttributeAtom, values)) {
GetAlignValueAt(nsIPresContext* aPresContext,                nsIFrame*       aTableOrRowFrame,                nsIAtom*        aAttributeAtom,                PRInt32         aIndex){  PRUnichar* result = nsnull;  nsValueList* valueList = nsnull;  nsCOMPtr<nsIPresShell> presShell;  aPresContext->GetShell(getter_AddRefs(presShell));  if (presShell) {    nsCOMPtr<nsIFrameManager> frameManager;    presShell->GetFrameManager(getter_AddRefs(frameManager));    if (frameManager) {      frameManager->GetFrameProperty(aTableOrRowFrame, aAttributeAtom,                                     0, (void**)&valueList);      if (!valueList) {        // The property isn't there yet, so set it        nsAutoString values;        nsCOMPtr<nsIContent> content;        aTableOrRowFrame->GetContent(getter_AddRefs(content));        if (NS_CONTENT_ATTR_HAS_VALUE == content->GetAttribute(kNameSpaceID_None, aAttributeAtom, values)) {          valueList = new nsValueList(values);          if (valueList) {            frameManager->SetFrameProperty(aTableOrRowFrame, aAttributeAtom,                                           valueList, DestroyValueListFunc);          }        }      }    }  }  if (valueList) {    PRInt32 count = valueList->mArray.Count();    result = (aIndex < count)           ? (PRUnichar*)(valueList->mArray[aIndex])           : (PRUnichar*)(valueList->mArray[count-1]);  }  return result;}