NSFramePropertyDtorFunc dtorFunc = nsnull;
NSPropertyDtorFunc dtorFunc = nsnull;
nsTableFrame::GetProperty(nsIPresContext*      aPresContext,                          nsIFrame*            aFrame,                          nsIAtom*             aPropertyName,                          PRBool               aCreateIfNecessary){  nsFrameManager *frameManager = aPresContext->FrameManager();  void *value = frameManager->GetFrameProperty(aFrame, aPropertyName, 0);  if (value) {    return (nsPoint*)value;  // the property already exists  } else if (aCreateIfNecessary) {    // The property isn't set yet, so allocate a new value, set the property,    // and return the newly allocated value    void* value = nsnull;    NSFramePropertyDtorFunc dtorFunc = nsnull;    if (aPropertyName == nsLayoutAtoms::collapseOffsetProperty) {      value = new nsPoint(0, 0);      dtorFunc = DestroyPointFunc;    }    else if (aPropertyName == nsLayoutAtoms::rowUnpaginatedHeightProperty) {      value = new nscoord;      dtorFunc = DestroyCoordFunc;    }    else if (aPropertyName == nsLayoutAtoms::tableBCProperty) {      value = new BCPropertyData;      dtorFunc = DestroyBCPropertyDataFunc;    }    if (!value) return nsnull;    frameManager->SetFrameProperty(aFrame, aPropertyName, value, dtorFunc);    return value;  }  return nsnull;}