if (mPluginWindow.ws_info) { PR_Free(mPluginWindow.ws_info); mPluginWindow.ws_info = nsnull;
if (mPluginWindow && mPluginWindow->ws_info) { PR_Free(mPluginWindow->ws_info); mPluginWindow->ws_info = nsnull;
nsPluginInstanceOwner::~nsPluginInstanceOwner(){  PRInt32 cnt;  // shut off the timer.  if (mPluginTimer != nsnull) {    CancelTimer();  }  NS_IF_RELEASE(mInstance);  NS_IF_RELEASE(mPluginHost);  mOwner = nsnull;  for (cnt = 0; cnt < (mNumCachedAttrs + 1 + mNumCachedParams); cnt++) {    if (mCachedAttrParamNames && mCachedAttrParamNames[cnt]) {      PR_Free(mCachedAttrParamNames[cnt]);      mCachedAttrParamNames[cnt] = nsnull;    }    if (mCachedAttrParamValues && mCachedAttrParamValues[cnt]) {      PR_Free(mCachedAttrParamValues[cnt]);      mCachedAttrParamValues[cnt] = nsnull;    }  }  if (mCachedAttrParamNames) {    PR_Free(mCachedAttrParamNames);    mCachedAttrParamNames = nsnull;  }  if (mCachedAttrParamValues) {    PR_Free(mCachedAttrParamValues);    mCachedAttrParamValues = nsnull;  }  if (mTagText) {    nsCRT::free(mTagText);    mTagText = nsnull;  }  NS_IF_RELEASE(mWidget);  mContext = nsnull;#ifdef XP_UNIX  // the mem for this struct is allocated  // by PR_MALLOC in ns4xPluginInstance.cpp:ns4xPluginInstance::SetWindow()  if (mPluginWindow.ws_info) {    PR_Free(mPluginWindow.ws_info);    mPluginWindow.ws_info = nsnull;  }#endif}