char* val = aValue.ToNewCString();
PRUnichar* val = aValue.ToNewUnicode();
nsPresState::SetStateProperty(const nsString& aName, const nsString& aValue){  if (!mPropertyTable)    mPropertyTable = new nsSupportsHashtable(8);  // Add to hashtable  nsStringKey key(aName);  nsCOMPtr<nsISupportsString> supportsStr;  nsresult rv = nsComponentManager::CreateInstance(NS_SUPPORTS_STRING_PROGID, nsnull,                                                     NS_GET_IID(nsISupportsString), getter_AddRefs(supportsStr));  char* val = aValue.ToNewCString();  supportsStr->SetData(val);  nsAllocator::Free(val);  mPropertyTable->Put(&key, supportsStr);  return NS_OK;}