BUILD FIX: Backed out r38189 since it apparently broke the world.

WebCore:

        BUILD FIX: Backed out r38189 since it apparently broke the world.

WebKit/mac:

        BUILD FIX: Backed out r38189 since it apparently broke the world.

WebKitTools:

        BUILD FIX: Backed out r38189 since it apparently broke the world.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@38202 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4e2ed7d..a5535c6 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,7 @@
+2008-11-06  David Kilzer  <ddkilzer@apple.com>
+
+        BUILD FIX: Backed out r38189 since it apparently broke the world.
+
 2008-11-06  Chris Fleizach  <cfleizach@apple.com>
 
         Reviewed by Beth Dakin.
diff --git a/WebCore/bindings/js/GCController.cpp b/WebCore/bindings/js/GCController.cpp
index 5b60e28..7a3f20d 100644
--- a/WebCore/bindings/js/GCController.cpp
+++ b/WebCore/bindings/js/GCController.cpp
@@ -52,7 +52,7 @@
 
 GCController& gcController()
 {
-    static GCController& staticGCController = *new GCController;
+    static GCController staticGCController;
     return staticGCController;
 }
 
diff --git a/WebCore/bindings/js/JSDOMBinding.cpp b/WebCore/bindings/js/JSDOMBinding.cpp
index a94c912..8676146 100644
--- a/WebCore/bindings/js/JSDOMBinding.cpp
+++ b/WebCore/bindings/js/JSDOMBinding.cpp
@@ -97,10 +97,10 @@
 static HashSet<DOMObject*>& wrapperSet()
 {
 #if ENABLE(WORKERS)
-    static ThreadSpecific<HashSet<DOMObject*> >& staticWrapperSet = *new ThreadSpecific<HashSet<DOMObject*> >;
+    static ThreadSpecific<HashSet<DOMObject*> > staticWrapperSet;
     return *staticWrapperSet;
 #else
-    static HashSet<DOMObject*>& staticWrapperSet = *new HashSet<DOMObject*>;
+    static HashSet<DOMObject*> staticWrapperSet;
     return staticWrapperSet;
 #endif
 }
diff --git a/WebCore/bindings/js/JSInspectedObjectWrapper.cpp b/WebCore/bindings/js/JSInspectedObjectWrapper.cpp
index 3454193..9bc7e7d 100644
--- a/WebCore/bindings/js/JSInspectedObjectWrapper.cpp
+++ b/WebCore/bindings/js/JSInspectedObjectWrapper.cpp
@@ -40,7 +40,7 @@
 
 static GlobalObjectWrapperMap& wrappers()
 {
-    static GlobalObjectWrapperMap& map = *new GlobalObjectWrapperMap;
+    static GlobalObjectWrapperMap map;
     return map;
 }
 
diff --git a/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp b/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp
index 455f124..8440a1f 100644
--- a/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp
+++ b/WebCore/bindings/js/JSInspectorCallbackWrapper.cpp
@@ -38,7 +38,7 @@
 
 static WrapperMap& wrappers()
 {
-    static WrapperMap& map = *new WrapperMap;
+    static WrapperMap map;
     return map;
 }
 
diff --git a/WebCore/bridge/runtime_root.cpp b/WebCore/bridge/runtime_root.cpp
index 786cde9..027d0c9 100644
--- a/WebCore/bridge/runtime_root.cpp
+++ b/WebCore/bridge/runtime_root.cpp
@@ -42,7 +42,7 @@
 
 static RootObjectSet* rootObjectSet()
 {
-    static RootObjectSet& staticRootObjectSet = *new RootObjectSet;
+    static RootObjectSet staticRootObjectSet;
     return &staticRootObjectSet;
 }
 
diff --git a/WebCore/css/CSSMutableStyleDeclaration.cpp b/WebCore/css/CSSMutableStyleDeclaration.cpp
index 1ef239e..1f29eba 100644
--- a/WebCore/css/CSSMutableStyleDeclaration.cpp
+++ b/WebCore/css/CSSMutableStyleDeclaration.cpp
@@ -501,7 +501,7 @@
 {
     ec = 0;
 
-    static HashMap<int, PropertyLonghand>& shorthandMap = *new HashMap<int, PropertyLonghand>;
+    static HashMap<int, PropertyLonghand> shorthandMap;
     if (shorthandMap.isEmpty())
         initShorthandMap(shorthandMap);
 
diff --git a/WebCore/css/CSSPrimitiveValue.cpp b/WebCore/css/CSSPrimitiveValue.cpp
index ce0ab77..8a7bb79 100644
--- a/WebCore/css/CSSPrimitiveValue.cpp
+++ b/WebCore/css/CSSPrimitiveValue.cpp
@@ -686,7 +686,7 @@
             // FIXME: Add list-style and separator
             break;
         case CSS_RECT: {
-            static const String& rectParen = *new String("rect(");
+            static const String rectParen("rect(");
 
             Rect* rectVal = getRectValue();
             Vector<UChar> result;
@@ -709,9 +709,9 @@
         }
         case CSS_RGBCOLOR:
         case CSS_PARSER_HEXCOLOR: {
-            static const String& commaSpace = *new String(", ");
-            static const String& rgbParen = *new String("rgb(");
-            static const String& rgbaParen = *new String("rgba(");
+            static const String commaSpace(", ");
+            static const String rgbParen("rgb(");
+            static const String rgbaParen("rgba(");
 
             RGBA32 rgbColor = m_value.rgbcolor;
             if (m_type == CSS_PARSER_HEXCOLOR)
diff --git a/WebCore/css/CSSSelector.cpp b/WebCore/css/CSSSelector.cpp
index 42ebac8..9053596 100644
--- a/WebCore/css/CSSSelector.cpp
+++ b/WebCore/css/CSSSelector.cpp
@@ -62,75 +62,75 @@
     if (m_match != PseudoClass && m_match != PseudoElement)
         return;
 
-    static AtomicString& active = *new AtomicString("active");
-    static AtomicString& after = *new AtomicString("after");
-    static AtomicString& anyLink = *new AtomicString("-webkit-any-link");
-    static AtomicString& autofill = *new AtomicString("-webkit-autofill");
-    static AtomicString& before = *new AtomicString("before");
-    static AtomicString& checked = *new AtomicString("checked");
-    static AtomicString& fileUploadButton = *new AtomicString("-webkit-file-upload-button");
-    static AtomicString& disabled = *new AtomicString("disabled");
-    static AtomicString& readOnly = *new AtomicString("read-only");
-    static AtomicString& readWrite = *new AtomicString("read-write");
-    static AtomicString& drag = *new AtomicString("-webkit-drag");
-    static AtomicString& dragAlias = *new AtomicString("-khtml-drag"); // was documented with this name in Apple documentation, so keep an alias
-    static AtomicString& empty = *new AtomicString("empty");
-    static AtomicString& enabled = *new AtomicString("enabled");
-    static AtomicString& firstChild = *new AtomicString("first-child");
-    static AtomicString& firstLetter = *new AtomicString("first-letter");
-    static AtomicString& firstLine = *new AtomicString("first-line");
-    static AtomicString& firstOfType = *new AtomicString("first-of-type");
-    static AtomicString& fullPageMedia = *new AtomicString("-webkit-full-page-media");
-    static AtomicString& nthChild = *new AtomicString("nth-child(");
-    static AtomicString& nthOfType = *new AtomicString("nth-of-type(");
-    static AtomicString& nthLastChild = *new AtomicString("nth-last-child(");
-    static AtomicString& nthLastOfType = *new AtomicString("nth-last-of-type(");
-    static AtomicString& focus = *new AtomicString("focus");
-    static AtomicString& hover = *new AtomicString("hover");
-    static AtomicString& indeterminate = *new AtomicString("indeterminate");
-    static AtomicString& inputPlaceholder = *new AtomicString("-webkit-input-placeholder");
-    static AtomicString& lastChild = *new AtomicString("last-child");
-    static AtomicString& lastOfType = *new AtomicString("last-of-type");
-    static AtomicString& link = *new AtomicString("link");
-    static AtomicString& lang = *new AtomicString("lang(");
-    static AtomicString& mediaControlsPanel = *new AtomicString("-webkit-media-controls-panel");
-    static AtomicString& mediaControlsMuteButton = *new AtomicString("-webkit-media-controls-mute-button");
-    static AtomicString& mediaControlsPlayButton = *new AtomicString("-webkit-media-controls-play-button");
-    static AtomicString& mediaControlsTimeDisplay = *new AtomicString("-webkit-media-controls-time-display");
-    static AtomicString& mediaControlsTimeline = *new AtomicString("-webkit-media-controls-timeline");
-    static AtomicString& mediaControlsSeekBackButton = *new AtomicString("-webkit-media-controls-seek-back-button");
-    static AtomicString& mediaControlsSeekForwardButton = *new AtomicString("-webkit-media-controls-seek-forward-button");
-    static AtomicString& mediaControlsFullscreenButton = *new AtomicString("-webkit-media-controls-fullscreen-button");
-    static AtomicString& notStr = *new AtomicString("not(");
-    static AtomicString& onlyChild = *new AtomicString("only-child");
-    static AtomicString& onlyOfType = *new AtomicString("only-of-type");
-    static AtomicString& resizer = *new AtomicString("-webkit-resizer");
-    static AtomicString& root = *new AtomicString("root");
-    static AtomicString& scrollbar = *new AtomicString("-webkit-scrollbar");
-    static AtomicString& scrollbarButton = *new AtomicString("-webkit-scrollbar-button");
-    static AtomicString& scrollbarCorner = *new AtomicString("-webkit-scrollbar-corner");
-    static AtomicString& scrollbarThumb = *new AtomicString("-webkit-scrollbar-thumb");
-    static AtomicString& scrollbarTrack = *new AtomicString("-webkit-scrollbar-track");
-    static AtomicString& scrollbarTrackPiece = *new AtomicString("-webkit-scrollbar-track-piece");
-    static AtomicString& searchCancelButton = *new AtomicString("-webkit-search-cancel-button");
-    static AtomicString& searchDecoration = *new AtomicString("-webkit-search-decoration");
-    static AtomicString& searchResultsDecoration = *new AtomicString("-webkit-search-results-decoration");
-    static AtomicString& searchResultsButton = *new AtomicString("-webkit-search-results-button");
-    static AtomicString& selection = *new AtomicString("selection");
-    static AtomicString& sliderThumb = *new AtomicString("-webkit-slider-thumb");
-    static AtomicString& target = *new AtomicString("target");
-    static AtomicString& visited = *new AtomicString("visited");
-    static AtomicString& windowInactive = *new AtomicString("window-inactive");
-    static AtomicString& decrement = *new AtomicString("decrement");
-    static AtomicString& increment = *new AtomicString("increment");
-    static AtomicString& start = *new AtomicString("start");
-    static AtomicString& end = *new AtomicString("end");
-    static AtomicString& horizontal = *new AtomicString("horizontal");
-    static AtomicString& vertical = *new AtomicString("vertical");
-    static AtomicString& doubleButton = *new AtomicString("double-button");
-    static AtomicString& singleButton = *new AtomicString("single-button");
-    static AtomicString& noButton = *new AtomicString("no-button");
-    static AtomicString& cornerPresent = *new AtomicString("corner-present");
+    static AtomicString active("active");
+    static AtomicString after("after");
+    static AtomicString anyLink("-webkit-any-link");
+    static AtomicString autofill("-webkit-autofill");
+    static AtomicString before("before");
+    static AtomicString checked("checked");
+    static AtomicString fileUploadButton("-webkit-file-upload-button");
+    static AtomicString disabled("disabled");
+    static AtomicString readOnly("read-only");
+    static AtomicString readWrite("read-write");
+    static AtomicString drag("-webkit-drag");
+    static AtomicString dragAlias("-khtml-drag"); // was documented with this name in Apple documentation, so keep an alias
+    static AtomicString empty("empty");
+    static AtomicString enabled("enabled");
+    static AtomicString firstChild("first-child");
+    static AtomicString firstLetter("first-letter");
+    static AtomicString firstLine("first-line");
+    static AtomicString firstOfType("first-of-type");
+    static AtomicString fullPageMedia("-webkit-full-page-media");
+    static AtomicString nthChild("nth-child(");
+    static AtomicString nthOfType("nth-of-type(");
+    static AtomicString nthLastChild("nth-last-child(");
+    static AtomicString nthLastOfType("nth-last-of-type(");
+    static AtomicString focus("focus");
+    static AtomicString hover("hover");
+    static AtomicString indeterminate("indeterminate");
+    static AtomicString inputPlaceholder("-webkit-input-placeholder");
+    static AtomicString lastChild("last-child");
+    static AtomicString lastOfType("last-of-type");
+    static AtomicString link("link");
+    static AtomicString lang("lang(");
+    static AtomicString mediaControlsPanel("-webkit-media-controls-panel");
+    static AtomicString mediaControlsMuteButton("-webkit-media-controls-mute-button");
+    static AtomicString mediaControlsPlayButton("-webkit-media-controls-play-button");
+    static AtomicString mediaControlsTimeDisplay("-webkit-media-controls-time-display");
+    static AtomicString mediaControlsTimeline("-webkit-media-controls-timeline");
+    static AtomicString mediaControlsSeekBackButton("-webkit-media-controls-seek-back-button");
+    static AtomicString mediaControlsSeekForwardButton("-webkit-media-controls-seek-forward-button");
+    static AtomicString mediaControlsFullscreenButton("-webkit-media-controls-fullscreen-button");
+    static AtomicString notStr("not(");
+    static AtomicString onlyChild("only-child");
+    static AtomicString onlyOfType("only-of-type");
+    static AtomicString resizer("-webkit-resizer");
+    static AtomicString root("root");
+    static AtomicString scrollbar("-webkit-scrollbar");
+    static AtomicString scrollbarButton("-webkit-scrollbar-button");
+    static AtomicString scrollbarCorner("-webkit-scrollbar-corner");
+    static AtomicString scrollbarThumb("-webkit-scrollbar-thumb");
+    static AtomicString scrollbarTrack("-webkit-scrollbar-track");
+    static AtomicString scrollbarTrackPiece("-webkit-scrollbar-track-piece");
+    static AtomicString searchCancelButton("-webkit-search-cancel-button");
+    static AtomicString searchDecoration("-webkit-search-decoration");
+    static AtomicString searchResultsDecoration("-webkit-search-results-decoration");
+    static AtomicString searchResultsButton("-webkit-search-results-button");
+    static AtomicString selection("selection");
+    static AtomicString sliderThumb("-webkit-slider-thumb");
+    static AtomicString target("target");
+    static AtomicString visited("visited");
+    static AtomicString windowInactive("window-inactive");
+    static AtomicString decrement("decrement");
+    static AtomicString increment("increment");
+    static AtomicString start("start");
+    static AtomicString end("end");
+    static AtomicString horizontal("horizontal");
+    static AtomicString vertical("vertical");
+    static AtomicString doubleButton("double-button");
+    static AtomicString singleButton("single-button");
+    static AtomicString noButton("no-button");
+    static AtomicString cornerPresent("corner-present");
 
     bool element = false; // pseudo-element
     bool compat = false; // single colon compatbility mode
diff --git a/WebCore/css/CSSStyleSelector.cpp b/WebCore/css/CSSStyleSelector.cpp
index d7056ca..446aaf4 100644
--- a/WebCore/css/CSSStyleSelector.cpp
+++ b/WebCore/css/CSSStyleSelector.cpp
@@ -372,13 +372,13 @@
 
 static const MediaQueryEvaluator& screenEval()
 {
-    static const MediaQueryEvaluator& staticScreenEval = *new MediaQueryEvaluator("screen");
+    static const MediaQueryEvaluator staticScreenEval("screen");
     return staticScreenEval;
 }
 
 static const MediaQueryEvaluator& printEval()
 {
-    static const MediaQueryEvaluator& staticPrintEval = *new MediaQueryEvaluator("print");
+    static const MediaQueryEvaluator staticPrintEval("print");
     return staticPrintEval;
 }
 
diff --git a/WebCore/dom/DOMImplementation.cpp b/WebCore/dom/DOMImplementation.cpp
index a2dd255..d7a8903 100644
--- a/WebCore/dom/DOMImplementation.cpp
+++ b/WebCore/dom/DOMImplementation.cpp
@@ -64,7 +64,7 @@
 static bool isSVG10Feature(const String &feature)
 {
     static bool initialized = false;
-    static HashSet<String, CaseFoldingHash>& svgFeatures = *new HashSet<String, CaseFoldingHash>;
+    static HashSet<String, CaseFoldingHash> svgFeatures;
     if (!initialized) {
 #if ENABLE(SVG_USE) && ENABLE(SVG_FOREIGN_OBJECT) && ENABLE(SVG_FILTER) && ENABLE(SVG_FONTS)
         addString(svgFeatures, "svg");
@@ -89,7 +89,7 @@
 static bool isSVG11Feature(const String &feature)
 {
     static bool initialized = false;
-    static HashSet<String, CaseFoldingHash>& svgFeatures = *new HashSet<String, CaseFoldingHash>;
+    static HashSet<String, CaseFoldingHash> svgFeatures;
     if (!initialized) {
         // Sadly, we cannot claim to implement any of the SVG 1.1 generic feature sets
         // lack of Font and Filter support.
@@ -274,7 +274,7 @@
     if (mimeType == "text/xml" || mimeType == "application/xml" || mimeType == "text/xsl")
         return true;
     static const char* validChars = "[0-9a-zA-Z_\\-+~!$\\^{}|.%'`#&*]"; // per RFCs: 3023, 2045
-    static RegularExpression& xmlTypeRegExp = *new RegularExpression(String("^") + validChars + "+/" + validChars + "+\\+xml$");
+    static RegularExpression xmlTypeRegExp(String("^") + validChars + "+/" + validChars + "+\\+xml$");
     return xmlTypeRegExp.match(mimeType) > -1;
 }
 
diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp
index 6955783..1d8de0a 100644
--- a/WebCore/dom/Document.cpp
+++ b/WebCore/dom/Document.cpp
@@ -713,9 +713,9 @@
 
 bool Document::hasPrefixNamespaceMismatch(const QualifiedName& qName)
 {
-    static const AtomicString& xmlnsNamespaceURI = *new AtomicString("http://www.w3.org/2000/xmlns/");
-    static const AtomicString& xmlns = *new AtomicString("xmlns");
-    static const AtomicString& xml = *new AtomicString("xml");
+    static const AtomicString xmlnsNamespaceURI("http://www.w3.org/2000/xmlns/");
+    static const AtomicString xmlns("xmlns");
+    static const AtomicString xml("xml");
 
     // These checks are from DOM Core Level 2, createElementNS
     // http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-DocCrElNS
diff --git a/WebCore/dom/ScriptElement.cpp b/WebCore/dom/ScriptElement.cpp
index c4e9f3e..5071afc 100644
--- a/WebCore/dom/ScriptElement.cpp
+++ b/WebCore/dom/ScriptElement.cpp
@@ -91,7 +91,7 @@
 // Helper function
 static bool isSupportedJavaScriptLanguage(const String& language)
 {
-    static HashSet<String, CaseFoldingHash>& languages = *new HashSet<String, CaseFoldingHash>;
+    static HashSet<String, CaseFoldingHash> languages;
     if (languages.isEmpty()) {
         languages.add("javascript");
         languages.add("javascript");
diff --git a/WebCore/editing/ApplyStyleCommand.cpp b/WebCore/editing/ApplyStyleCommand.cpp
index ee891d0..887ae3c 100644
--- a/WebCore/editing/ApplyStyleCommand.cpp
+++ b/WebCore/editing/ApplyStyleCommand.cpp
@@ -216,7 +216,7 @@
 
 static String &styleSpanClassString()
 {
-    static String& styleSpanClassString = *new String(AppleStyleSpanClass);
+    static String styleSpanClassString = AppleStyleSpanClass;
     return styleSpanClassString;
 }
 
diff --git a/WebCore/editing/HTMLInterchange.cpp b/WebCore/editing/HTMLInterchange.cpp
index c50d214..024ac9f 100644
--- a/WebCore/editing/HTMLInterchange.cpp
+++ b/WebCore/editing/HTMLInterchange.cpp
@@ -36,7 +36,7 @@
 
 String convertedSpaceString()
 {
-    static String& convertedSpaceString = *new String;
+    static String convertedSpaceString;
     if (convertedSpaceString.isNull()) {
         convertedSpaceString = "<span class=\"";
         convertedSpaceString += AppleConvertedSpace;
diff --git a/WebCore/editing/IndentOutdentCommand.cpp b/WebCore/editing/IndentOutdentCommand.cpp
index cc22816..385f1b7 100644
--- a/WebCore/editing/IndentOutdentCommand.cpp
+++ b/WebCore/editing/IndentOutdentCommand.cpp
@@ -43,7 +43,7 @@
 
 static String indentBlockquoteString()
 {
-    static String& string = *new String("webkit-indent-blockquote");
+    static String string = "webkit-indent-blockquote";
     return string;
 }
 
diff --git a/WebCore/editing/ReplaceSelectionCommand.cpp b/WebCore/editing/ReplaceSelectionCommand.cpp
index 4ae6992..49bd8a5 100644
--- a/WebCore/editing/ReplaceSelectionCommand.cpp
+++ b/WebCore/editing/ReplaceSelectionCommand.cpp
@@ -89,14 +89,14 @@
 
 static bool isInterchangeNewlineNode(const Node *node)
 {
-    static String& interchangeNewlineClassString = *new String(AppleInterchangeNewline);
+    static String interchangeNewlineClassString(AppleInterchangeNewline);
     return node && node->hasTagName(brTag) && 
            static_cast<const Element *>(node)->getAttribute(classAttr) == interchangeNewlineClassString;
 }
 
 static bool isInterchangeConvertedSpaceSpan(const Node *node)
 {
-    static String& convertedSpaceSpanClassString = *new String(AppleConvertedSpace);
+    static String convertedSpaceSpanClassString(AppleConvertedSpace);
     return node->isHTMLElement() && 
            static_cast<const HTMLElement *>(node)->getAttribute(classAttr) == convertedSpaceSpanClassString;
 }
diff --git a/WebCore/editing/htmlediting.cpp b/WebCore/editing/htmlediting.cpp
index 026f7a2..68ea754 100644
--- a/WebCore/editing/htmlediting.cpp
+++ b/WebCore/editing/htmlediting.cpp
@@ -364,9 +364,9 @@
 
 String stringWithRebalancedWhitespace(const String& string, bool startIsStartOfParagraph, bool endIsEndOfParagraph)
 {
-    static String& twoSpaces = *new String("  ");
-    static String& nbsp = *new String("\xa0");
-    static String& pattern = *new String(" \xa0");
+    static String twoSpaces("  ");
+    static String nbsp("\xa0");
+    static String pattern(" \xa0");
 
     String rebalancedString = string;
 
@@ -393,7 +393,7 @@
 
 const String& nonBreakingSpaceString()
 {
-    static String& nonBreakingSpaceString = *new String(&noBreakSpace, 1);
+    static String nonBreakingSpaceString = String(&noBreakSpace, 1);
     return nonBreakingSpaceString;
 }
 
diff --git a/WebCore/editing/markup.cpp b/WebCore/editing/markup.cpp
index ecace75..b067002 100644
--- a/WebCore/editing/markup.cpp
+++ b/WebCore/editing/markup.cpp
@@ -94,11 +94,11 @@
     unsigned len = attr.length();
     unsigned lastCopiedFrom = 0;
 
-    static const String& ampEntity = *new String("&amp;");
-    static const String& gtEntity = *new String("&gt;");
-    static const String& ltEntity = *new String("&lt;");
-    static const String& quotEntity = *new String("&quot;");
-    static const String& nbspEntity = *new String("&nbsp;");
+    static const String ampEntity("&amp;");
+    static const String gtEntity("&gt;");
+    static const String ltEntity("&lt;");
+    static const String quotEntity("&quot;");
+    static const String nbspEntity("&nbsp;");
     
     for (unsigned i = 0; i < len; ++i) {
         UChar c = uchars[i];
@@ -142,10 +142,10 @@
     unsigned len = range.second;
     unsigned lastCopiedFrom = 0;
     
-    static const String& ampEntity = *new String("&amp;");
-    static const String& gtEntity = *new String("&gt;");
-    static const String& ltEntity = *new String("&lt;");
-    static const String& nbspEntity = *new String("&nbsp;");
+    static const String ampEntity("&amp;");
+    static const String gtEntity("&gt;");
+    static const String ltEntity("&lt;");
+    static const String nbspEntity("&nbsp;");
 
     for (unsigned i = 0; i < len; ++i) {
         UChar c = uchars[i];
@@ -316,8 +316,8 @@
 static bool shouldAddNamespaceAttr(const Attribute* attr, HashMap<AtomicStringImpl*, AtomicStringImpl*>& namespaces)
 {
     // Don't add namespace attributes twice
-    static const AtomicString& xmlnsURI = *new AtomicString("http://www.w3.org/2000/xmlns/");
-    static const QualifiedName& xmlnsAttr = *new QualifiedName(nullAtom, "xmlns", xmlnsURI);
+    static const AtomicString xmlnsURI = "http://www.w3.org/2000/xmlns/";
+    static const QualifiedName xmlnsAttr(nullAtom, "xmlns", xmlnsURI);
     if (attr->name() == xmlnsAttr) {
         namespaces.set(emptyAtom.impl(), attr->value().impl());
         return false;
@@ -342,7 +342,7 @@
     AtomicStringImpl* foundNS = namespaces.get(pre);
     if (foundNS != ns.impl()) {
         namespaces.set(pre, ns.impl());
-        static const String& xmlns = *new String("xmlns");
+        static const String xmlns("xmlns");
         result.append(' ');
         append(result, xmlns);
         if (!prefix.isEmpty()) {
@@ -501,7 +501,7 @@
                 if (convert)
                     style->setProperty(CSSPropertyDisplay, CSSValueInline, true);
                 if (style->length() > 0) {
-                    static const String& stylePrefix = *new String(" style=\"");
+                    static const String stylePrefix(" style=\"");
                     append(result, stylePrefix);
                     appendAttributeValue(result, style->cssText(), documentIsHTML);
                     result.append('\"');
@@ -702,7 +702,7 @@
 // FIXME: At least, annotation and style info should probably not be included in range.markupString()
 String createMarkup(const Range* range, Vector<Node*>* nodes, EAnnotateForInterchange annotate, bool convertBlocksToInlines)
 {
-    static const String& interchangeNewlineString = *new String("<br class=\"" AppleInterchangeNewline "\">");
+    static const String interchangeNewlineString = String("<br class=\"") + AppleInterchangeNewline + "\">";
 
     if (!range)
         return "";
@@ -905,14 +905,14 @@
                 
                 if (style->length()) {
                     Vector<UChar> openTag;
-                    static const String& divStyle = *new String("<div style=\"");
+                    static const String divStyle("<div style=\"");
                     append(openTag, divStyle);
                     appendAttributeValue(openTag, style->cssText(), documentIsHTML);
                     openTag.append('\"');
                     openTag.append('>');
                     preMarkups.append(String::adopt(openTag));
 
-                    static const String& divCloseTag = *new String("</div>");
+                    static const String divCloseTag("</div>");
                     markups.append(divCloseTag);
                 }
             } else {
@@ -929,8 +929,8 @@
         }
     }
     
-    static const String& styleSpanOpen = *new String("<span class=\"" AppleStyleSpanClass "\" style=\"");
-    static const String& styleSpanClose = *new String("</span>");
+    static const String styleSpanOpen = String("<span class=\"" AppleStyleSpanClass "\" style=\"");
+    static const String styleSpanClose("</span>");
     
     // Add a wrapper span with the styles that all of the nodes in the markup inherit.
     Node* parentOfLastClosed = lastClosed ? lastClosed->parentNode() : 0;
diff --git a/WebCore/html/HTMLButtonElement.cpp b/WebCore/html/HTMLButtonElement.cpp
index 16daf5a..f65e748 100644
--- a/WebCore/html/HTMLButtonElement.cpp
+++ b/WebCore/html/HTMLButtonElement.cpp
@@ -57,15 +57,15 @@
 {
     switch (m_type) {
         case SUBMIT: {
-            static const AtomicString& submit = *new AtomicString("submit");
+            static const AtomicString submit("submit");
             return submit;
         }
         case BUTTON: {
-            static const AtomicString& button = *new AtomicString("button");
+            static const AtomicString button("button");
             return button;
         }
         case RESET: {
-            static const AtomicString& reset = *new AtomicString("reset");
+            static const AtomicString reset("reset");
             return reset;
         }
     }
diff --git a/WebCore/html/HTMLElement.cpp b/WebCore/html/HTMLElement.cpp
index 88fb81a..0f86a80 100644
--- a/WebCore/html/HTMLElement.cpp
+++ b/WebCore/html/HTMLElement.cpp
@@ -808,7 +808,7 @@
 // This unfortunate function is only needed when checking against the DTD.  Other languages (like SVG) won't need this.
 bool HTMLElement::isRecognizedTagName(const QualifiedName& tagName)
 {
-    static HashSet<AtomicStringImpl*>& tagList = *new HashSet<AtomicStringImpl*>;
+    static HashSet<AtomicStringImpl*> tagList;
     if (tagList.isEmpty()) {
         size_t tagCount = 0;
         WebCore::QualifiedName** tags = HTMLNames::getHTMLTags(&tagCount);
@@ -822,7 +822,7 @@
 // need to be in these two lists.
 HashSet<AtomicStringImpl*>* inlineTagList()
 {
-    static HashSet<AtomicStringImpl*>& tagList = *new HashSet<AtomicStringImpl*>;
+    static HashSet<AtomicStringImpl*> tagList;
     if (tagList.isEmpty()) {
         tagList.add(ttTag.localName().impl());
         tagList.add(iTag.localName().impl());
@@ -881,7 +881,7 @@
 
 HashSet<AtomicStringImpl*>* blockTagList()
 {
-    static HashSet<AtomicStringImpl*>& tagList = *new HashSet<AtomicStringImpl*>;
+    static HashSet<AtomicStringImpl*> tagList;
     if (tagList.isEmpty()) {
         tagList.add(addressTag.localName().impl());
         tagList.add(blockquoteTag.localName().impl());
diff --git a/WebCore/html/HTMLFieldSetElement.cpp b/WebCore/html/HTMLFieldSetElement.cpp
index aaffaad..c4594de 100644
--- a/WebCore/html/HTMLFieldSetElement.cpp
+++ b/WebCore/html/HTMLFieldSetElement.cpp
@@ -55,7 +55,7 @@
 
 const AtomicString& HTMLFieldSetElement::type() const
 {
-    static const AtomicString& fieldset = *new AtomicString("fieldset");
+    static const AtomicString fieldset("fieldset");
     return fieldset;
 }
 
diff --git a/WebCore/html/HTMLInputElement.cpp b/WebCore/html/HTMLInputElement.cpp
index 7f7acf9..a802eaf 100644
--- a/WebCore/html/HTMLInputElement.cpp
+++ b/WebCore/html/HTMLInputElement.cpp
@@ -373,53 +373,53 @@
     // needs to be lowercase according to DOM spec
     switch (inputType()) {
         case BUTTON: {
-            static const AtomicString& button = *new AtomicString("button");
+            static const AtomicString button("button");
             return button;
         }
         case CHECKBOX: {
-            static const AtomicString& checkbox = *new AtomicString("checkbox");
+            static const AtomicString checkbox("checkbox");
             return checkbox;
         }
         case FILE: {
-            static const AtomicString& file = *new AtomicString("file");
+            static const AtomicString file("file");
             return file;
         }
         case HIDDEN: {
-            static const AtomicString& hidden = *new AtomicString("hidden");
+            static const AtomicString hidden("hidden");
             return hidden;
         }
         case IMAGE: {
-            static const AtomicString& image = *new AtomicString("image");
+            static const AtomicString image("image");
             return image;
         }
         case ISINDEX:
             return emptyAtom;
         case PASSWORD: {
-            static const AtomicString& password = *new AtomicString("password");
+            static const AtomicString password("password");
             return password;
         }
         case RADIO: {
-            static const AtomicString& radio = *new AtomicString("radio");
+            static const AtomicString radio("radio");
             return radio;
         }
         case RANGE: {
-            static const AtomicString& range = *new AtomicString("range");
+            static const AtomicString range("range");
             return range;
         }
         case RESET: {
-            static const AtomicString& reset = *new AtomicString("reset");
+            static const AtomicString reset("reset");
             return reset;
         }
         case SEARCH: {
-            static const AtomicString& search = *new AtomicString("search");
+            static const AtomicString search("search");
             return search;
         }
         case SUBMIT: {
-            static const AtomicString& submit = *new AtomicString("submit");
+            static const AtomicString submit("submit");
             return submit;
         }
         case TEXT: {
-            static const AtomicString& text = *new AtomicString("text");
+            static const AtomicString text("text");
             return text;
         }
     }
diff --git a/WebCore/html/HTMLKeygenElement.cpp b/WebCore/html/HTMLKeygenElement.cpp
index 84ced37..b918d78 100644
--- a/WebCore/html/HTMLKeygenElement.cpp
+++ b/WebCore/html/HTMLKeygenElement.cpp
@@ -56,7 +56,7 @@
 
 const AtomicString& HTMLKeygenElement::type() const
 {
-    static const AtomicString& keygen = *new AtomicString("keygen");
+    static const AtomicString keygen("keygen");
     return keygen;
 }
 
diff --git a/WebCore/html/HTMLLegendElement.cpp b/WebCore/html/HTMLLegendElement.cpp
index 01fc8cb..573f06f 100644
--- a/WebCore/html/HTMLLegendElement.cpp
+++ b/WebCore/html/HTMLLegendElement.cpp
@@ -58,7 +58,7 @@
 
 const AtomicString& HTMLLegendElement::type() const
 {
-    static const AtomicString& legend = *new AtomicString("legend");
+    static const AtomicString legend("legend");
     return legend;
 }
 
diff --git a/WebCore/html/HTMLOptGroupElement.cpp b/WebCore/html/HTMLOptGroupElement.cpp
index 7d23801..0465fb4 100644
--- a/WebCore/html/HTMLOptGroupElement.cpp
+++ b/WebCore/html/HTMLOptGroupElement.cpp
@@ -49,7 +49,7 @@
 
 const AtomicString& HTMLOptGroupElement::type() const
 {
-    static const AtomicString& optgroup = *new AtomicString("optgroup");
+    static const AtomicString optgroup("optgroup");
     return optgroup;
 }
 
diff --git a/WebCore/html/HTMLOptionElement.cpp b/WebCore/html/HTMLOptionElement.cpp
index f939a5e..887a4e5 100644
--- a/WebCore/html/HTMLOptionElement.cpp
+++ b/WebCore/html/HTMLOptionElement.cpp
@@ -73,7 +73,7 @@
 
 const AtomicString& HTMLOptionElement::type() const
 {
-    static const AtomicString& option = *new AtomicString("option");
+    static const AtomicString option("option");
     return option;
 }
 
diff --git a/WebCore/html/HTMLParser.cpp b/WebCore/html/HTMLParser.cpp
index e4ede55..ba2220c 100644
--- a/WebCore/html/HTMLParser.cpp
+++ b/WebCore/html/HTMLParser.cpp
@@ -832,7 +832,7 @@
 PassRefPtr<Node> HTMLParser::getNode(Token* t)
 {
     // Init our error handling table.
-    static FunctionMap& gFunctionMap = *new FunctionMap;
+    static FunctionMap gFunctionMap;
     if (gFunctionMap.isEmpty()) {
         gFunctionMap.set(aTag.localName().impl(), &HTMLParser::nestedCreateErrorCheck);
         gFunctionMap.set(addressTag.localName().impl(), &HTMLParser::pCloserCreateErrorCheck);
@@ -943,7 +943,7 @@
 
 bool HTMLParser::isHeaderTag(const AtomicString& tagName)
 {
-    static HashSet<AtomicStringImpl*>& headerTags = *new HashSet<AtomicStringImpl*>;
+    static HashSet<AtomicStringImpl*> headerTags;
     if (headerTags.isEmpty()) {
         headerTags.add(h1Tag.localName().impl());
         headerTags.add(h2Tag.localName().impl());
@@ -986,7 +986,7 @@
 
 bool HTMLParser::isResidualStyleTag(const AtomicString& tagName)
 {
-    static HashSet<AtomicStringImpl*>& residualStyleTags = *new HashSet<AtomicStringImpl*>;
+    static HashSet<AtomicStringImpl*> residualStyleTags;
     if (residualStyleTags.isEmpty()) {
         residualStyleTags.add(aTag.localName().impl());
         residualStyleTags.add(fontTag.localName().impl());
@@ -1013,7 +1013,7 @@
 
 bool HTMLParser::isAffectedByResidualStyle(const AtomicString& tagName)
 {
-    static HashSet<AtomicStringImpl*>& unaffectedTags = *new HashSet<AtomicStringImpl*>;
+    static HashSet<AtomicStringImpl*> unaffectedTags;
     if (unaffectedTags.isEmpty()) {
         unaffectedTags.add(bodyTag.localName().impl());
         unaffectedTags.add(tableTag.localName().impl());
diff --git a/WebCore/html/HTMLSelectElement.cpp b/WebCore/html/HTMLSelectElement.cpp
index 01ea4a8..91cef6f 100644
--- a/WebCore/html/HTMLSelectElement.cpp
+++ b/WebCore/html/HTMLSelectElement.cpp
@@ -114,8 +114,8 @@
 
 const AtomicString& HTMLSelectElement::type() const
 {
-    static const AtomicString& selectMultiple = *new AtomicString("select-multiple");
-    static const AtomicString& selectOne = *new AtomicString("select-one");
+    static const AtomicString selectMultiple("select-multiple");
+    static const AtomicString selectOne("select-one");
     return m_multiple ? selectMultiple : selectOne;
 }
 
diff --git a/WebCore/html/HTMLTextAreaElement.cpp b/WebCore/html/HTMLTextAreaElement.cpp
index b62b01c..85da131 100644
--- a/WebCore/html/HTMLTextAreaElement.cpp
+++ b/WebCore/html/HTMLTextAreaElement.cpp
@@ -59,7 +59,7 @@
 
 const AtomicString& HTMLTextAreaElement::type() const
 {
-    static const AtomicString& textarea = *new AtomicString("textarea");
+    static const AtomicString textarea("textarea");
     return textarea;
 }
 
diff --git a/WebCore/inspector/InspectorController.cpp b/WebCore/inspector/InspectorController.cpp
index f9d98f5..109464a 100644
--- a/WebCore/inspector/InspectorController.cpp
+++ b/WebCore/inspector/InspectorController.cpp
@@ -862,20 +862,20 @@
 {
 #if PLATFORM(MAC)
 #ifdef BUILDING_ON_TIGER
-    static const String& platform = *new String("mac-tiger");
+    static const String platform = "mac-tiger";
 #else
-    static const String& platform = *new String("mac-leopard");
+    static const String platform = "mac-leopard";
 #endif
 #elif PLATFORM(WIN_OS)
-    static const String& platform = *new String("windows");
+    static const String platform = "windows";
 #elif PLATFORM(QT)
-    static const String& platform = *new String("qt");
+    static const String platform = "qt";
 #elif PLATFORM(GTK)
-    static const String& platform = *new String("gtk");
+    static const String platform = "gtk";
 #elif PLATFORM(WX)
-    static const String& platform = *new String("wx");
+    static const String platform = "wx";
 #else
-    static const String& platform = *new String("unknown");
+    static const String platform = "unknown";
 #endif
 
     JSValueRef platformValue = JSValueMakeString(ctx, jsStringRef(platform).get());
diff --git a/WebCore/inspector/JavaScriptDebugServer.cpp b/WebCore/inspector/JavaScriptDebugServer.cpp
index bceaf95..ed9ae85 100644
--- a/WebCore/inspector/JavaScriptDebugServer.cpp
+++ b/WebCore/inspector/JavaScriptDebugServer.cpp
@@ -59,7 +59,7 @@
 
 JavaScriptDebugServer& JavaScriptDebugServer::shared()
 {
-    static JavaScriptDebugServer& server = *new JavaScriptDebugServer;
+    static JavaScriptDebugServer server;
     return server;
 }
 
diff --git a/WebCore/inspector/JavaScriptProfile.cpp b/WebCore/inspector/JavaScriptProfile.cpp
index 3f73ec9..3ebdd55 100644
--- a/WebCore/inspector/JavaScriptProfile.cpp
+++ b/WebCore/inspector/JavaScriptProfile.cpp
@@ -45,7 +45,7 @@
 
 static ProfileMap& profileCache()
 { 
-    static ProfileMap& staticProfiles = *new ProfileMap;
+    static ProfileMap staticProfiles;
     return staticProfiles;
 }
 
diff --git a/WebCore/inspector/JavaScriptProfileNode.cpp b/WebCore/inspector/JavaScriptProfileNode.cpp
index 16ec75c..ef2b2cd 100644
--- a/WebCore/inspector/JavaScriptProfileNode.cpp
+++ b/WebCore/inspector/JavaScriptProfileNode.cpp
@@ -46,7 +46,7 @@
 
 static ProfileNodeMap& profileNodeCache()
 { 
-    static ProfileNodeMap& staticProfileNodes = *new ProfileNodeMap;
+    static ProfileNodeMap staticProfileNodes;
     return staticProfileNodes;
 }
 
diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp
index 85a236b..41fa0af 100644
--- a/WebCore/loader/FrameLoader.cpp
+++ b/WebCore/loader/FrameLoader.cpp
@@ -1172,7 +1172,7 @@
 
 static HashSet<String, CaseFoldingHash>& localSchemes()
 {
-    static HashSet<String, CaseFoldingHash>& localSchemes = *new HashSet<String, CaseFoldingHash>;
+    static HashSet<String, CaseFoldingHash> localSchemes;
 
     if (localSchemes.isEmpty()) {
         localSchemes.add("file");
diff --git a/WebCore/loader/appcache/ApplicationCacheStorage.cpp b/WebCore/loader/appcache/ApplicationCacheStorage.cpp
index 50e8c8a..910d00c 100644
--- a/WebCore/loader/appcache/ApplicationCacheStorage.cpp
+++ b/WebCore/loader/appcache/ApplicationCacheStorage.cpp
@@ -653,7 +653,7 @@
     
 ApplicationCacheStorage& cacheStorage()
 {
-    static ApplicationCacheStorage& storage = *new ApplicationCacheStorage;
+    static ApplicationCacheStorage storage;
     
     return storage;
 }
diff --git a/WebCore/loader/archive/ArchiveFactory.cpp b/WebCore/loader/archive/ArchiveFactory.cpp
index fa3c871..c42b5df 100644
--- a/WebCore/loader/archive/ArchiveFactory.cpp
+++ b/WebCore/loader/archive/ArchiveFactory.cpp
@@ -51,7 +51,7 @@
 
 static HashMap<String, RawDataCreationFunction*, CaseFoldingHash>& archiveMIMETypes()
 {
-    static HashMap<String, RawDataCreationFunction*, CaseFoldingHash>& mimeTypes = *new HashMap<String, RawDataCreationFunction*, CaseFoldingHash>;
+    static HashMap<String, RawDataCreationFunction*, CaseFoldingHash> mimeTypes;
     static bool initialized = false;
     
     if (initialized)
diff --git a/WebCore/loader/icon/IconDatabase.cpp b/WebCore/loader/icon/IconDatabase.cpp
index 89ea92e..493b631 100644
--- a/WebCore/loader/icon/IconDatabase.cpp
+++ b/WebCore/loader/icon/IconDatabase.cpp
@@ -850,7 +850,7 @@
 
 String IconDatabase::defaultDatabaseFilename()
 {
-    static String& defaultDatabaseFilename = *new String("WebpageIcons.db");
+    static String defaultDatabaseFilename = "WebpageIcons.db";
     return defaultDatabaseFilename.copy();
 }
 
diff --git a/WebCore/page/EventHandler.cpp b/WebCore/page/EventHandler.cpp
index c72998c..70202bf 100644
--- a/WebCore/page/EventHandler.cpp
+++ b/WebCore/page/EventHandler.cpp
@@ -150,7 +150,7 @@
     
 EventHandler::EventHandlerDragState& EventHandler::dragState()
 {
-    static EventHandlerDragState& state = *new EventHandlerDragState;
+    static EventHandlerDragState state;
     return state;
 }
     
diff --git a/WebCore/page/Frame.cpp b/WebCore/page/Frame.cpp
index da6eb81..bd08e58 100644
--- a/WebCore/page/Frame.cpp
+++ b/WebCore/page/Frame.cpp
@@ -317,7 +317,7 @@
     // REVIEW- version of this call in FrameMac.mm caches based on the NSArray ptrs being
     // the same across calls.  We can't do that.
 
-    static RegularExpression& wordRegExp = *new RegularExpression("\\w");
+    static RegularExpression wordRegExp = RegularExpression("\\w");
     String pattern("(");
     unsigned int numLabels = labels.size();
     unsigned int i;
@@ -1011,7 +1011,7 @@
 #ifndef NDEBUG
 static HashSet<Frame*>& keepAliveSet()
 {
-    static HashSet<Frame*>& staticKeepAliveSet = *new HashSet<Frame*>;
+    static HashSet<Frame*> staticKeepAliveSet;
     return staticKeepAliveSet;
 }
 #endif
diff --git a/WebCore/page/Page.cpp b/WebCore/page/Page.cpp
index 555bf51..1a9bade 100644
--- a/WebCore/page/Page.cpp
+++ b/WebCore/page/Page.cpp
@@ -232,7 +232,7 @@
 
 const String& Page::groupName() const
 {
-    static String& nullString = *new String;
+    static String nullString;
     return m_group ? m_group->name() : nullString;
 }
 
diff --git a/WebCore/page/SecurityOrigin.cpp b/WebCore/page/SecurityOrigin.cpp
index 2f2a245..6de7508 100644
--- a/WebCore/page/SecurityOrigin.cpp
+++ b/WebCore/page/SecurityOrigin.cpp
@@ -41,7 +41,7 @@
     if (protocol.isEmpty())
         return false;
 
-    static HashMap<String, unsigned>& defaultPorts = *new HashMap<String, unsigned>;
+    static HashMap<String, unsigned> defaultPorts;
     if (defaultPorts.isEmpty()) {
         defaultPorts.set("http", 80);
         defaultPorts.set("https", 443);
@@ -260,7 +260,7 @@
 
 String SecurityOrigin::databaseIdentifier() const 
 {
-    static String& separatorString = *new String(&SeparatorCharacter, 1);
+    static String separatorString = String(&SeparatorCharacter, 1);
     return m_protocol + separatorString + m_host + separatorString + String::number(m_port); 
 }
 
diff --git a/WebCore/page/mac/FrameMac.mm b/WebCore/page/mac/FrameMac.mm
index 8c8fb9a..66e2d04 100644
--- a/WebCore/page/mac/FrameMac.mm
+++ b/WebCore/page/mac/FrameMac.mm
@@ -88,8 +88,8 @@
     // that the app will use is equal to the number of locales is used in searching.
     static const unsigned int regExpCacheSize = 4;
     static NSMutableArray* regExpLabels = nil;
-    static Vector<RegularExpression*>& regExps = *new Vector<RegularExpression*>;
-    static RegularExpression& wordRegExp = *new RegularExpression("\\w");
+    static Vector<RegularExpression*> regExps;
+    static RegularExpression wordRegExp = RegularExpression("\\w");
 
     RegularExpression* result;
     if (!regExpLabels)
diff --git a/WebCore/platform/KURL.cpp b/WebCore/platform/KURL.cpp
index 3c1c34c..1f33297 100644
--- a/WebCore/platform/KURL.cpp
+++ b/WebCore/platform/KURL.cpp
@@ -1563,7 +1563,7 @@
 
 const KURL& blankURL()
 {
-    static KURL& staticBlankURL = *new KURL("about:blank");
+    static KURL staticBlankURL("about:blank");
     return staticBlankURL;
 }
 
diff --git a/WebCore/platform/graphics/FontCache.cpp b/WebCore/platform/graphics/FontCache.cpp
index e4858cc..1c5a987 100644
--- a/WebCore/platform/graphics/FontCache.cpp
+++ b/WebCore/platform/graphics/FontCache.cpp
@@ -124,24 +124,21 @@
 static const AtomicString& alternateFamilyName(const AtomicString& familyName)
 {
     // Alias Courier <-> Courier New
-    static AtomicString& courier = *new AtomicString("Courier");
-    static AtomicString& courierNew = *new AtomicString("Courier New");
+    static AtomicString courier("Courier"), courierNew("Courier New");
     if (equalIgnoringCase(familyName, courier))
         return courierNew;
     if (equalIgnoringCase(familyName, courierNew))
         return courier;
 
     // Alias Times and Times New Roman.
-    static AtomicString& times = *new AtomicString("Times");
-    static AtomicString& timesNewRoman = *new AtomicString("Times New Roman");
+    static AtomicString times("Times"), timesNewRoman("Times New Roman");
     if (equalIgnoringCase(familyName, times))
         return timesNewRoman;
     if (equalIgnoringCase(familyName, timesNewRoman))
         return times;
     
     // Alias Arial and Helvetica
-    static AtomicString& arial = *new AtomicString("Arial");
-    static AtomicString& helvetica = *new AtomicString("Helvetica");
+    static AtomicString arial("Arial"), helvetica("Helvetica");
     if (equalIgnoringCase(familyName, arial))
         return helvetica;
     if (equalIgnoringCase(familyName, helvetica))
diff --git a/WebCore/platform/graphics/mac/FontCacheMac.mm b/WebCore/platform/graphics/mac/FontCacheMac.mm
index fe90d47..e7cda66 100644
--- a/WebCore/platform/graphics/mac/FontCacheMac.mm
+++ b/WebCore/platform/graphics/mac/FontCacheMac.mm
@@ -140,7 +140,7 @@
     while (currFamily && !platformData) {
         if (currFamily->family().length()) {
             static String matchWords[3] = { String("Arabic"), String("Pashto"), String("Urdu") };
-            static AtomicString& geezaStr = *new AtomicString("Geeza Pro");
+            static AtomicString geezaStr("Geeza Pro");
             for (int j = 0; j < 3 && !platformData; ++j)
                 if (currFamily->family().contains(matchWords[j], false))
                     platformData = getCachedFontPlatformData(font.fontDescription(), geezaStr);
@@ -153,8 +153,8 @@
 
 FontPlatformData* FontCache::getLastResortFallbackFont(const FontDescription& fontDescription)
 {
-    static AtomicString& timesStr = *new AtomicString("Times");
-    static AtomicString& lucidaGrandeStr = *new AtomicString("Lucida Grande");
+    static AtomicString timesStr("Times");
+    static AtomicString lucidaGrandeStr("Lucida Grande");
 
     // FIXME: Would be even better to somehow get the user's default font here.  For now we'll pick
     // the default that the user would get without changing any prefs.
diff --git a/WebCore/platform/mac/ScrollbarThemeMac.mm b/WebCore/platform/mac/ScrollbarThemeMac.mm
index 2826b9a..dd2c233 100644
--- a/WebCore/platform/mac/ScrollbarThemeMac.mm
+++ b/WebCore/platform/mac/ScrollbarThemeMac.mm
@@ -86,7 +86,7 @@
 
 ScrollbarTheme* ScrollbarTheme::nativeTheme()
 {
-    static ScrollbarThemeMac& theme = *new ScrollbarThemeMac;
+    static ScrollbarThemeMac theme;
     return &theme;
 }
 
diff --git a/WebCore/platform/mac/ThemeMac.mm b/WebCore/platform/mac/ThemeMac.mm
index c1b9c72..3b1da55 100644
--- a/WebCore/platform/mac/ThemeMac.mm
+++ b/WebCore/platform/mac/ThemeMac.mm
@@ -46,7 +46,7 @@
 
 Theme* platformTheme()
 {
-    static ThemeMac& themeMac = *new ThemeMac;
+    static ThemeMac themeMac;
     return &themeMac;
 }
 
diff --git a/WebCore/platform/mac/ThreadCheck.mm b/WebCore/platform/mac/ThreadCheck.mm
index 86cb714..6320c70 100644
--- a/WebCore/platform/mac/ThreadCheck.mm
+++ b/WebCore/platform/mac/ThreadCheck.mm
@@ -79,7 +79,7 @@
 void WebCoreReportThreadViolation(const char* function)
 {
     using namespace WebCore;
-    static HashSet<String>& loggedFunctions = *new HashSet<String>;
+    static HashSet<String> loggedFunctions;
     switch (threadViolationBehavior) {
         case NoThreadCheck:
             break;
diff --git a/WebCore/platform/network/NetworkStateNotifier.cpp b/WebCore/platform/network/NetworkStateNotifier.cpp
index df34f1c..d39fc30 100644
--- a/WebCore/platform/network/NetworkStateNotifier.cpp
+++ b/WebCore/platform/network/NetworkStateNotifier.cpp
@@ -32,7 +32,7 @@
 
 NetworkStateNotifier& networkStateNotifier()
 {
-    static NetworkStateNotifier& networkStateNotifier = *new NetworkStateNotifier;
+    static NetworkStateNotifier networkStateNotifier;
     
     return networkStateNotifier;
 }
diff --git a/WebCore/platform/network/mac/FormDataStreamMac.mm b/WebCore/platform/network/mac/FormDataStreamMac.mm
index 5192b0a..3ef224d 100644
--- a/WebCore/platform/network/mac/FormDataStreamMac.mm
+++ b/WebCore/platform/network/mac/FormDataStreamMac.mm
@@ -49,14 +49,14 @@
 typedef HashMap<CFReadStreamRef, RefPtr<FormData> > StreamFormDataMap;
 static StreamFormDataMap& getStreamFormDataMap()
 {
-    static StreamFormDataMap& streamFormDataMap = *new StreamFormDataMap;
+    static StreamFormDataMap streamFormDataMap;
     return streamFormDataMap;
 }
 
 typedef HashMap<CFReadStreamRef, RefPtr<ResourceHandle> > StreamResourceHandleMap;
 static StreamResourceHandleMap& getStreamResourceHandleMap()
 {
-    static StreamResourceHandleMap& streamResourceHandleMap = *new StreamResourceHandleMap;
+    static StreamResourceHandleMap streamResourceHandleMap;
     return streamResourceHandleMap;
 }
 
diff --git a/WebCore/platform/network/mac/ResourceResponseMac.mm b/WebCore/platform/network/mac/ResourceResponseMac.mm
index aaef4d6..f60b496 100644
--- a/WebCore/platform/network/mac/ResourceResponseMac.mm
+++ b/WebCore/platform/network/mac/ResourceResponseMac.mm
@@ -99,7 +99,7 @@
         // is returning incorrect MIME type for local .xhtml files) which is only required in Leopard.
         if (m_url.isLocalFile() && m_mimeType == "text/html") {
             const String& path = m_url.path();
-            static const String& xhtmlExt = *new String(".xhtml");
+            static const String xhtmlExt(".xhtml");
             if (path.endsWith(xhtmlExt, false))
                 m_mimeType = "application/xhtml+xml";
         }
diff --git a/WebCore/platform/text/TextEncoding.cpp b/WebCore/platform/text/TextEncoding.cpp
index eb6b3e0..9026049 100644
--- a/WebCore/platform/text/TextEncoding.cpp
+++ b/WebCore/platform/text/TextEncoding.cpp
@@ -122,7 +122,7 @@
     if (noExtendedTextEncodingNameUsed())
         return false;
 
-    static HashSet<const char*>& set = *new HashSet<const char*>;
+    static HashSet<const char*> set;
     if (set.isEmpty()) {
         addEncodingName(set, "x-mac-japanese");
         addEncodingName(set, "cp932");
diff --git a/WebCore/rendering/RenderBlock.cpp b/WebCore/rendering/RenderBlock.cpp
index ceae790..e466386 100644
--- a/WebCore/rendering/RenderBlock.cpp
+++ b/WebCore/rendering/RenderBlock.cpp
@@ -1798,7 +1798,7 @@
 
 HashMap<RenderBlock*, RenderFlowSequencedSet*>* continuationOutlineTable()
 {
-    static HashMap<RenderBlock*, RenderFlowSequencedSet*>& table = *new HashMap<RenderBlock*, RenderFlowSequencedSet*>;
+    static HashMap<RenderBlock*, RenderFlowSequencedSet*> table;
     return &table;
 }
 
diff --git a/WebCore/rendering/RenderCounter.cpp b/WebCore/rendering/RenderCounter.cpp
index 4fbdd7c..4b6deed 100644
--- a/WebCore/rendering/RenderCounter.cpp
+++ b/WebCore/rendering/RenderCounter.cpp
@@ -41,7 +41,7 @@
 
 static CounterMaps& counterMaps()
 {
-    static CounterMaps& staticCounterMaps = *new CounterMaps;
+    static CounterMaps staticCounterMaps;
     return staticCounterMaps;
 }
 
diff --git a/WebCore/rendering/RenderFlexibleBox.cpp b/WebCore/rendering/RenderFlexibleBox.cpp
index ca0bb65..aff7f9b 100644
--- a/WebCore/rendering/RenderFlexibleBox.cpp
+++ b/WebCore/rendering/RenderFlexibleBox.cpp
@@ -777,7 +777,7 @@
                     continue;
 
                 const UChar ellipsisAndSpace[2] = { horizontalEllipsis, ' ' };
-                static AtomicString& ellipsisAndSpaceStr = *new AtomicString(ellipsisAndSpace, 2);
+                static AtomicString ellipsisAndSpaceStr(ellipsisAndSpace, 2);
 
                 const Font& font = style(numVisibleLines == 1)->font();
                 int ellipsisAndSpaceWidth = font.width(TextRun(ellipsisAndSpace, 2));
diff --git a/WebCore/rendering/RenderListItem.cpp b/WebCore/rendering/RenderListItem.cpp
index ec82f06..b69612e 100644
--- a/WebCore/rendering/RenderListItem.cpp
+++ b/WebCore/rendering/RenderListItem.cpp
@@ -289,7 +289,7 @@
 {
     if (m_marker)
         return m_marker->text();
-    static String& staticNullString = *new String;
+    static String staticNullString;
     return staticNullString;
 }
 
diff --git a/WebCore/rendering/RenderScrollbarTheme.cpp b/WebCore/rendering/RenderScrollbarTheme.cpp
index c1e2c23..2b375d0 100644
--- a/WebCore/rendering/RenderScrollbarTheme.cpp
+++ b/WebCore/rendering/RenderScrollbarTheme.cpp
@@ -31,7 +31,7 @@
 
 RenderScrollbarTheme* RenderScrollbarTheme::renderScrollbarTheme()
 {
-    static RenderScrollbarTheme& theme = *new RenderScrollbarTheme;
+    static RenderScrollbarTheme theme;
     return &theme;
 }
 
diff --git a/WebCore/rendering/RenderThemeMac.mm b/WebCore/rendering/RenderThemeMac.mm
index 8cf7bd4..699b74a 100644
--- a/WebCore/rendering/RenderThemeMac.mm
+++ b/WebCore/rendering/RenderThemeMac.mm
@@ -168,13 +168,13 @@
 
 void RenderThemeMac::systemFont(int cssValueId, FontDescription& fontDescription) const
 {
-    static FontDescription& systemFont = *new FontDescription;
-    static FontDescription& smallSystemFont = *new FontDescription;
-    static FontDescription& menuFont = *new FontDescription;
-    static FontDescription& labelFont = *new FontDescription;
-    static FontDescription& miniControlFont = *new FontDescription;
-    static FontDescription& smallControlFont = *new FontDescription;
-    static FontDescription& controlFont = *new FontDescription;
+    static FontDescription systemFont;
+    static FontDescription smallSystemFont;
+    static FontDescription menuFont;
+    static FontDescription labelFont;
+    static FontDescription miniControlFont;
+    static FontDescription smallControlFont;
+    static FontDescription controlFont;
 
     FontDescription* cachedDesc;
     NSFont* font = nil;
diff --git a/WebCore/rendering/bidi.cpp b/WebCore/rendering/bidi.cpp
index 415cf13..77b4b19 100644
--- a/WebCore/rendering/bidi.cpp
+++ b/WebCore/rendering/bidi.cpp
@@ -2192,7 +2192,7 @@
     // Determine the width of the ellipsis using the current font.
     // FIXME: CSS3 says this is configurable, also need to use 0x002E (FULL STOP) if horizontal ellipsis is "not renderable"
     TextRun ellipsisRun(&horizontalEllipsis, 1);
-    static AtomicString& ellipsisStr = *new AtomicString(&horizontalEllipsis, 1);
+    static AtomicString ellipsisStr(&horizontalEllipsis, 1);
     const Font& firstLineFont = firstLineStyle()->font();
     const Font& font = style()->font();
     int firstLineEllipsisWidth = firstLineFont.width(ellipsisRun);
diff --git a/WebCore/rendering/style/RenderStyle.cpp b/WebCore/rendering/style/RenderStyle.cpp
index 8c2bd58..5088c33 100644
--- a/WebCore/rendering/style/RenderStyle.cpp
+++ b/WebCore/rendering/style/RenderStyle.cpp
@@ -720,13 +720,13 @@
 #if ENABLE(DASHBOARD_SUPPORT)
 const Vector<StyleDashboardRegion>& RenderStyle::initialDashboardRegions()
 {
-    static Vector<StyleDashboardRegion>& emptyList = *new Vector<StyleDashboardRegion>;
+    static Vector<StyleDashboardRegion> emptyList;
     return emptyList;
 }
 
 const Vector<StyleDashboardRegion>& RenderStyle::noneDashboardRegions()
 {
-    static Vector<StyleDashboardRegion>& noneList = *new Vector<StyleDashboardRegion>;
+    static Vector<StyleDashboardRegion> noneList;
     static bool noneListInitialized = false;
 
     if (!noneListInitialized) {
diff --git a/WebCore/storage/LocalStorage.cpp b/WebCore/storage/LocalStorage.cpp
index ef2258c..0177593 100644
--- a/WebCore/storage/LocalStorage.cpp
+++ b/WebCore/storage/LocalStorage.cpp
@@ -42,7 +42,7 @@
 
 static LocalStorageMap& localStorageMap()
 {
-    static LocalStorageMap& localStorageMap = *new LocalStorageMap;
+    static LocalStorageMap localStorageMap;
     return localStorageMap;
 }
 
diff --git a/WebCore/svg/SVGAnimateMotionElement.cpp b/WebCore/svg/SVGAnimateMotionElement.cpp
index d19fc66..60ffc47 100644
--- a/WebCore/svg/SVGAnimateMotionElement.cpp
+++ b/WebCore/svg/SVGAnimateMotionElement.cpp
@@ -91,8 +91,8 @@
     
 SVGAnimateMotionElement::RotateMode SVGAnimateMotionElement::rotateMode() const
 {
-    static const AtomicString& autoVal = *new AtomicString("auto");
-    static const AtomicString& autoReverse = *new AtomicString("auto-reverse");
+    static const AtomicString autoVal("auto");
+    static const AtomicString autoReverse("auto-reverse");
     String rotate = getAttribute(SVGNames::rotateAttr);
     if (rotate == autoVal)
         return RotateAuto;
diff --git a/WebCore/svg/SVGAnimationElement.cpp b/WebCore/svg/SVGAnimationElement.cpp
index 9ca6872..5910ac8 100644
--- a/WebCore/svg/SVGAnimationElement.cpp
+++ b/WebCore/svg/SVGAnimationElement.cpp
@@ -196,10 +196,10 @@
 
 SVGAnimationElement::CalcMode SVGAnimationElement::calcMode() const
 {    
-    static const AtomicString& discrete = *new AtomicString("discrete");
-    static const AtomicString& linear = *new AtomicString("linear");
-    static const AtomicString& paced = *new AtomicString("paced");
-    static const AtomicString& spline = *new AtomicString("spline");
+    static const AtomicString discrete("discrete");
+    static const AtomicString linear("linear");
+    static const AtomicString paced("paced");
+    static const AtomicString spline("spline");
     const AtomicString& value = getAttribute(SVGNames::calcModeAttr);
     if (value == discrete)
         return CalcModeDiscrete;
@@ -214,8 +214,8 @@
 
 SVGAnimationElement::AttributeType SVGAnimationElement::attributeType() const
 {    
-    static const AtomicString& css = *new AtomicString("CSS");
-    static const AtomicString& xml = *new AtomicString("XML");
+    static const AtomicString css("CSS");
+    static const AtomicString xml("XML");
     const AtomicString& value = getAttribute(SVGNames::attributeTypeAttr);
     if (value == css)
         return AttributeTypeCSS;
@@ -241,14 +241,14 @@
 
 bool SVGAnimationElement::isAdditive() const
 {
-    static const AtomicString& sum = *new AtomicString("sum");
+    static const AtomicString sum("sum");
     const AtomicString& value = getAttribute(SVGNames::additiveAttr);
     return value == sum || animationMode() == ByAnimation;
 }
 
 bool SVGAnimationElement::isAccumulated() const
 {
-    static const AtomicString& sum = *new AtomicString("sum");
+    static const AtomicString sum("sum");
     const AtomicString& value = getAttribute(SVGNames::accumulateAttr);
     return value == sum && animationMode() != ToAnimation;
 }
diff --git a/WebCore/svg/SVGLangSpace.cpp b/WebCore/svg/SVGLangSpace.cpp
index b98887e..638f0c1 100644
--- a/WebCore/svg/SVGLangSpace.cpp
+++ b/WebCore/svg/SVGLangSpace.cpp
@@ -51,7 +51,7 @@
 const AtomicString& SVGLangSpace::xmlspace() const
 {
     if (!m_space) {
-        static const AtomicString& defaultString = *new AtomicString("default");
+        static const AtomicString defaultString("default");
         return defaultString;
     }
 
diff --git a/WebCore/svg/SVGSVGElement.cpp b/WebCore/svg/SVGSVGElement.cpp
index 2de200e..6875ab8fd 100644
--- a/WebCore/svg/SVGSVGElement.cpp
+++ b/WebCore/svg/SVGSVGElement.cpp
@@ -89,7 +89,7 @@
 
 const AtomicString& SVGSVGElement::contentScriptType() const
 {
-    static const AtomicString& defaultValue = *new AtomicString("text/ecmascript");
+    static const AtomicString defaultValue("text/ecmascript");
     const AtomicString& n = getAttribute(contentScriptTypeAttr);
     return n.isNull() ? defaultValue : n;
 }
@@ -101,7 +101,7 @@
 
 const AtomicString& SVGSVGElement::contentStyleType() const
 {
-    static const AtomicString& defaultValue = *new AtomicString("text/css");
+    static const AtomicString defaultValue("text/css");
     const AtomicString& n = getAttribute(contentStyleTypeAttr);
     return n.isNull() ? defaultValue : n;
 }
diff --git a/WebCore/svg/SVGStyleElement.cpp b/WebCore/svg/SVGStyleElement.cpp
index afdeb2a..2612de0 100644
--- a/WebCore/svg/SVGStyleElement.cpp
+++ b/WebCore/svg/SVGStyleElement.cpp
@@ -53,7 +53,7 @@
 
 const AtomicString& SVGStyleElement::type() const
 {
-    static const AtomicString& defaultValue = *new AtomicString("text/css");
+    static const AtomicString defaultValue("text/css");
     const AtomicString& n = getAttribute(typeAttr);
     return n.isNull() ? defaultValue : n;
 }
@@ -65,7 +65,7 @@
 
 const AtomicString& SVGStyleElement::media() const
 {
-    static const AtomicString& defaultValue = *new AtomicString("all");
+    static const AtomicString defaultValue("all");
     const AtomicString& n = getAttribute(mediaAttr);
     return n.isNull() ? defaultValue : n;
 }
diff --git a/WebCore/svg/SVGTextContentElement.cpp b/WebCore/svg/SVGTextContentElement.cpp
index d25e07a..e53d662 100644
--- a/WebCore/svg/SVGTextContentElement.cpp
+++ b/WebCore/svg/SVGTextContentElement.cpp
@@ -498,7 +498,7 @@
             return;
         if (SVGLangSpace::parseMappedAttribute(attr)) {
             if (attr->name().matches(XMLNames::spaceAttr)) {
-                static const AtomicString& preserveString = *new AtomicString("preserve");
+                static const AtomicString preserveString("preserve");
 
                 if (attr->value() == preserveString)
                     addCSSProperty(attr, CSSPropertyWhiteSpace, CSSValuePre);
diff --git a/WebCore/svg/animation/SVGSMILElement.cpp b/WebCore/svg/animation/SVGSMILElement.cpp
index cdb9342..a07a407 100644
--- a/WebCore/svg/animation/SVGSMILElement.cpp
+++ b/WebCore/svg/animation/SVGSMILElement.cpp
@@ -193,7 +193,7 @@
     
     String parse = data.stripWhiteSpace();
 
-    static const AtomicString& indefiniteValue = *new AtomicString("indefinite");
+    static const AtomicString indefiniteValue("indefinite");
     if (parse == indefiniteValue)
         return SMILTime::indefinite();
 
@@ -457,8 +457,8 @@
     
 SVGSMILElement::Restart SVGSMILElement::restart() const
 {    
-    static const AtomicString& never = *new AtomicString("never");
-    static const AtomicString& whenNotActive = *new AtomicString("whenNotActive");
+    static const AtomicString never("never");
+    static const AtomicString whenNotActive("whenNotActive");
     const AtomicString& value = getAttribute(SVGNames::restartAttr);
     if (value == never)
         return RestartNever;
@@ -469,7 +469,7 @@
     
 SVGSMILElement::FillMode SVGSMILElement::fill() const
 {   
-    static const AtomicString& freeze = *new AtomicString("freeze");
+    static const AtomicString freeze("freeze");
     const AtomicString& value = getAttribute(SVGNames::fillAttr);
     return value == freeze ? FillFreeze : FillRemove;
 }
@@ -506,7 +506,7 @@
     if (value.isNull())
         return SMILTime::unresolved();
 
-    static const AtomicString& indefiniteValue = *new AtomicString("indefinite");
+    static const AtomicString indefiniteValue("indefinite");
     if (value == indefiniteValue)
         return SMILTime::indefinite();
     bool ok;
@@ -861,7 +861,7 @@
 void SVGSMILElement::notifyDependentsIntervalChanged(NewOrExistingInterval newOrExisting)
 {
     ASSERT(m_intervalBegin.isFinite());
-    static HashSet<SVGSMILElement*>& loopBreaker = *new HashSet<SVGSMILElement*>;
+    static HashSet<SVGSMILElement*> loopBreaker;
     if (loopBreaker.contains(this))
         return;
     loopBreaker.add(this);
diff --git a/WebCore/svg/graphics/SVGResource.cpp b/WebCore/svg/graphics/SVGResource.cpp
index acd66fc..10d6648 100644
--- a/WebCore/svg/graphics/SVGResource.cpp
+++ b/WebCore/svg/graphics/SVGResource.cpp
@@ -48,7 +48,7 @@
 };
 
 static HashMap<SVGStyledElement*, ResourceSet*>& clientMap() {
-    static HashMap<SVGStyledElement*, ResourceSet*>& map = *new HashMap<SVGStyledElement*, ResourceSet*>;
+    static HashMap<SVGStyledElement*, ResourceSet*> map;
     return map;
 }
 
diff --git a/WebCore/svg/graphics/SVGResourceMarker.cpp b/WebCore/svg/graphics/SVGResourceMarker.cpp
index eb7d202..3649321 100644
--- a/WebCore/svg/graphics/SVGResourceMarker.cpp
+++ b/WebCore/svg/graphics/SVGResourceMarker.cpp
@@ -65,7 +65,7 @@
     if (!m_marker)
         return;
 
-    static HashSet<SVGResourceMarker*>& currentlyDrawingMarkers = *new HashSet<SVGResourceMarker*>;
+    static HashSet<SVGResourceMarker*> currentlyDrawingMarkers;
 
     // avoid drawing circular marker references
     if (currentlyDrawingMarkers.contains(this))
diff --git a/WebCore/xml/XMLHttpRequest.cpp b/WebCore/xml/XMLHttpRequest.cpp
index 235ce4a..67aba0b 100644
--- a/WebCore/xml/XMLHttpRequest.cpp
+++ b/WebCore/xml/XMLHttpRequest.cpp
@@ -73,7 +73,7 @@
 
 static PreflightResultCache& preflightResultCache()
 {
-    static PreflightResultCache& cache = *new PreflightResultCache;
+    static PreflightResultCache cache;
     return cache;
 }
 
@@ -88,9 +88,9 @@
 
 static bool isSafeRequestHeader(const String& name)
 {
-    static HashSet<String, CaseFoldingHash>& forbiddenHeaders = *new HashSet<String, CaseFoldingHash>;
-    static String& proxyString = *new String("proxy-");
-    static String& secString = *new String("sec-");
+    static HashSet<String, CaseFoldingHash> forbiddenHeaders;
+    static String proxyString("proxy-");
+    static String secString("sec-");
     
     if (forbiddenHeaders.isEmpty()) {
         forbiddenHeaders.add("accept-charset");
@@ -121,7 +121,7 @@
 
 static bool isOnAccessControlResponseHeaderWhitelist(const String& name)
 {
-    static HashSet<String, CaseFoldingHash>& allowedHeaders = *new HashSet<String, CaseFoldingHash>;
+    static HashSet<String, CaseFoldingHash> allowedHeaders;
     if (allowedHeaders.isEmpty()) {
         allowedHeaders.add("cache-control");
         allowedHeaders.add("content-language");
diff --git a/WebCore/xml/XPathExpressionNode.cpp b/WebCore/xml/XPathExpressionNode.cpp
index 09f5dd0..88e349e 100644
--- a/WebCore/xml/XPathExpressionNode.cpp
+++ b/WebCore/xml/XPathExpressionNode.cpp
@@ -37,7 +37,7 @@
     
 EvaluationContext& Expression::evaluationContext()
 {
-    static EvaluationContext& evaluationContext = *new EvaluationContext;
+    static EvaluationContext evaluationContext;
     return evaluationContext;
 }
 
diff --git a/WebCore/xml/XPathParser.cpp b/WebCore/xml/XPathParser.cpp
index 059a2b5..77c3011 100644
--- a/WebCore/xml/XPathParser.cpp
+++ b/WebCore/xml/XPathParser.cpp
@@ -97,7 +97,7 @@
 
 static bool isAxisName(const String& name, Step::Axis& type)
 {
-    static HashMap<String, Step::Axis>& axisNames = *new HashMap<String, Step::Axis>;
+    static HashMap<String, Step::Axis> axisNames;
 
     if (axisNames.isEmpty())
         setUpAxisNamesMap(axisNames);
@@ -111,7 +111,7 @@
 
 static bool isNodeTypeName(const String& name)
 {
-    static HashSet<String>& nodeTypeNames = *new HashSet<String>;
+    static HashSet<String> nodeTypeNames;
     if (nodeTypeNames.isEmpty()) {
         nodeTypeNames.add("comment");
         nodeTypeNames.add("text");
diff --git a/WebCore/xml/XPathValue.cpp b/WebCore/xml/XPathValue.cpp
index ba0def9..b3cad38 100644
--- a/WebCore/xml/XPathValue.cpp
+++ b/WebCore/xml/XPathValue.cpp
@@ -45,7 +45,7 @@
 const NodeSet& Value::toNodeSet() const
 {
     if (!m_data) {
-        static NodeSet& emptyNodeSet = *new NodeSet;
+        static NodeSet emptyNodeSet;
         return emptyNodeSet;
     }
 
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index 6f470bd..ecf3d64 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,7 @@
+2008-11-06  David Kilzer  <ddkilzer@apple.com>
+
+        BUILD FIX: Backed out r38189 since it apparently broke the world.
+
 2008-11-06  John Sullivan  <sullivan@apple.com>
 
         Fixed problem with switching between text-only zoom and full-content zoom
diff --git a/WebKit/mac/History/WebBackForwardList.mm b/WebKit/mac/History/WebBackForwardList.mm
index 4811d2d..30767c3 100644
--- a/WebKit/mac/History/WebBackForwardList.mm
+++ b/WebKit/mac/History/WebBackForwardList.mm
@@ -51,7 +51,7 @@
 
 static HashMap<BackForwardList*, WebBackForwardList*>& backForwardLists()
 {
-    static HashMap<BackForwardList*, WebBackForwardList*>& staticBackForwardLists = *new HashMap<BackForwardList*, WebBackForwardList*>;
+    static HashMap<BackForwardList*, WebBackForwardList*> staticBackForwardLists;
     return staticBackForwardLists;
 }
 
diff --git a/WebKit/mac/History/WebHistoryItem.mm b/WebKit/mac/History/WebHistoryItem.mm
index dd60532..f9e1f95 100644
--- a/WebKit/mac/History/WebHistoryItem.mm
+++ b/WebKit/mac/History/WebHistoryItem.mm
@@ -70,7 +70,7 @@
 
 HashMap<HistoryItem*, WebHistoryItem*>& historyItemWrappers()
 {
-    static HashMap<HistoryItem*, WebHistoryItem*>& historyItemWrappers = *new HashMap<HistoryItem*, WebHistoryItem*>;
+    static HashMap<HistoryItem*, WebHistoryItem*> historyItemWrappers;
     return historyItemWrappers;
 }
 
diff --git a/WebKit/mac/Misc/WebStringTruncator.m b/WebKit/mac/Misc/WebStringTruncator.m
index 74b92e8..c395e7a 100644
--- a/WebKit/mac/Misc/WebStringTruncator.m
+++ b/WebKit/mac/Misc/WebStringTruncator.m
@@ -49,7 +49,7 @@
 static Font& fontFromNSFont(NSFont *font)
 {
     static NSFont *currentFont;
-    static Font& currentRenderer = *new Font;
+    static Font currentRenderer;
 
     if ([font isEqual:currentFont])
         return currentRenderer;
diff --git a/WebKit/mac/Plugins/WebBaseNetscapePluginStream.mm b/WebKit/mac/Plugins/WebBaseNetscapePluginStream.mm
index afe7b21..ee4bed3 100644
--- a/WebKit/mac/Plugins/WebBaseNetscapePluginStream.mm
+++ b/WebKit/mac/Plugins/WebBaseNetscapePluginStream.mm
@@ -55,7 +55,7 @@
 typedef HashMap<NPStream*, NPP> StreamMap;
 static StreamMap& streams()
 {
-    static StreamMap& staticStreams = *new StreamMap;
+    static StreamMap staticStreams;
     return staticStreams;
 }
 
diff --git a/WebKit/mac/WebView/WebView.mm b/WebKit/mac/WebView/WebView.mm
index 6369111..0ab7c73 100644
--- a/WebKit/mac/WebView/WebView.mm
+++ b/WebKit/mac/WebView/WebView.mm
@@ -3606,7 +3606,7 @@
             }
         }
         else if (object->inherits(&JSArray::info)) {
-            static HashSet<JSObject*>& visitedElems = *new HashSet<JSObject*>;
+            static HashSet<JSObject*> visitedElems;
             if (!visitedElems.contains(object)) {
                 visitedElems.add(object);
                 
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 51ea81a..0c3c6c1 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,7 @@
+2008-11-06  David Kilzer  <ddkilzer@apple.com>
+
+        BUILD FIX: Backed out r38189 since it apparently broke the world.
+
 2008-11-06  Chris Fleizach  <cfleizach@apple.com>
 
         Reviewed by Beth Dakin.
diff --git a/WebKitTools/Scripts/check-for-exit-time-destructors b/WebKitTools/Scripts/check-for-exit-time-destructors
index bf6c4ca..63ca6f7 100755
--- a/WebKitTools/Scripts/check-for-exit-time-destructors
+++ b/WebKitTools/Scripts/check-for-exit-time-destructors
@@ -95,35 +95,110 @@
     if ($target eq "WebCore") {
         next if $shortName eq "AccessibilityObject.o";
         next if $shortName eq "AccessibilityRenderObject.o";
+        next if $shortName eq "ApplicationCacheStorage.o";
+        next if $shortName eq "ApplyStyleCommand.o";
+        next if $shortName eq "ArchiveFactory.o";
+        next if $shortName eq "CSSMutableStyleDeclaration.o";
+        next if $shortName eq "CSSPrimitiveValue.o";
+        next if $shortName eq "CSSSelector.o";
         next if $shortName eq "CSSStyleSelector.o";
         next if $shortName eq "CachedImage.o";
         next if $shortName eq "ColorMac.o";
+        next if $shortName eq "DOMImplementation.o";
+        next if $shortName eq "Document.o";
+        next if $shortName eq "EventHandler.o";
         next if $shortName eq "EventHandlerMac.o";
         next if $shortName eq "FTPDirectoryDocument.o";
         next if $shortName eq "FontCache.o";
         next if $shortName eq "FontCacheMac.o";
+        next if $shortName eq "FormDataStreamMac.o";
+        next if $shortName eq "Frame.o";
+        next if $shortName eq "FrameLoader.o";
+        next if $shortName eq "FrameMac.o";
+        next if $shortName eq "GCController.o";
         next if $shortName eq "GraphicsContextMac.o";
+        next if $shortName eq "HTMLButtonElement.o";
+        next if $shortName eq "HTMLElement.o";
+        next if $shortName eq "HTMLFieldSetElement.o";
+        next if $shortName eq "HTMLInputElement.o";
+        next if $shortName eq "HTMLInterchange.o";
+        next if $shortName eq "HTMLKeygenElement.o";
+        next if $shortName eq "HTMLLegendElement.o";
+        next if $shortName eq "HTMLOptGroupElement.o";
+        next if $shortName eq "HTMLOptionElement.o";
+        next if $shortName eq "HTMLParser.o";
+        next if $shortName eq "HTMLSelectElement.o";
         next if $shortName eq "HTMLTableElement.o";
+        next if $shortName eq "HTMLTextAreaElement.o";
         next if $shortName eq "IconDatabase.o";
         next if $shortName eq "Image.o";
+        next if $shortName eq "IndentOutdentCommand.o";
+        next if $shortName eq "InspectorController.o";
+        next if $shortName eq "JSDOMBinding.o";
         next if $shortName eq "JSHTMLElementWrapperFactory.o";
+        next if $shortName eq "JSInspectedObjectWrapper.o";
+        next if $shortName eq "JSInspectorCallbackWrapper.o";
         next if $shortName eq "JSSVGAnimatedLength.o";
         next if $shortName eq "JSSVGAnimatedRect.o";
         next if $shortName eq "JSSVGElementWrapperFactory.o";
         next if $shortName eq "JSSVGLength.o";
         next if $shortName eq "JSSVGRect.o";
+        next if $shortName eq "JavaScriptDebugServer.o";
+        next if $shortName eq "JavaScriptProfile.o";
+        next if $shortName eq "JavaScriptProfileNode.o";
+        next if $shortName eq "KURL.o";
+        next if $shortName eq "LocalStorage.o";
+        next if $shortName eq "NetworkStateNotifier.o";
+        next if $shortName eq "Page.o";
         next if $shortName eq "PasteboardMac.o";
+        next if $shortName eq "RenderBlock.o";
+        next if $shortName eq "RenderCounter.o";
+        next if $shortName eq "RenderFlexibleBox.o";
         next if $shortName eq "RenderLayer.o";
+        next if $shortName eq "RenderListItem.o";
+        next if $shortName eq "RenderScrollbarTheme.o";
+        next if $shortName eq "RenderStyle.o";
+        next if $shortName eq "RenderThemeMac.o";
+        next if $shortName eq "ReplaceSelectionCommand.o";
+        next if $shortName eq "ResourceResponseMac.o";
+        next if $shortName eq "SVGAnimateMotionElement.o";
+        next if $shortName eq "SVGAnimationElement.o";
+        next if $shortName eq "SVGLangSpace.o";
+        next if $shortName eq "SVGResource.o";
+        next if $shortName eq "SVGResourceMarker.o";
+        next if $shortName eq "SVGSMILElement.o";
+        next if $shortName eq "SVGSVGElement.o";
+        next if $shortName eq "SVGStyleElement.o";
+        next if $shortName eq "SVGTextContentElement.o";
+        next if $shortName eq "ScriptElement.o";
         next if $shortName eq "ScrollView.o";
+        next if $shortName eq "ScrollbarThemeMac.o";
         next if $shortName eq "SecurityOrigin.o";
         next if $shortName eq "SimpleFontDataMac.o";
         next if $shortName eq "StyleTransformData.o";
+        next if $shortName eq "TextEncoding.o";
+        next if $shortName eq "ThemeMac.o";
+        next if $shortName eq "ThreadCheck.o";
+        next if $shortName eq "XMLHttpRequest.o";
+        next if $shortName eq "XPathExpressionNode.o";
+        next if $shortName eq "XPathParser.o";
+        next if $shortName eq "XPathValue.o";
+        next if $shortName eq "bidi.o";
+        next if $shortName eq "htmlediting.o";
+        next if $shortName eq "markup.o";
+        next if $shortName eq "runtime_root.o";
     }
 
     if ($target eq "WebKit") {
+        next if $shortName eq "AccessibilityObject.o";
+        next if $shortName eq "WebBackForwardList.o";
+        next if $shortName eq "WebBaseNetscapePluginStream.o";
         next if $shortName eq "WebHTMLRepresentation.o";
+        next if $shortName eq "WebHistoryItem.o";
         next if $shortName eq "WebNSPasteboardExtras.o";
         next if $shortName eq "WebPasteboardHelper.o";
+        next if $shortName eq "WebStringTruncator.o";
+        next if $shortName eq "WebView.o";
     }
 
     $sawError = 1 if printFunctions($shortName, $file);