Title: [100391] trunk/Source/_javascript_Core
Revision
100391
Author
[email protected]
Date
2011-11-15 18:53:09 -0800 (Tue, 15 Nov 2011)

Log Message

REGRESSION (r98887): ParserArena and Keywords leaking
https://bugs.webkit.org/show_bug.cgi?id=72428

Reviewed by Sam Weinig.

* parser/Lexer.h: Made Keywords destructor public since OwnPtr and PassOwnPtr
need to be able to destroy it.

* parser/Parser.cpp:
(JSC::Parser::Parser): Use get now that parserArena is an OwnPtr.

* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData): Use adoptPtr to initialize OwnPtr members.

* runtime/JSGlobalData.h: Make parserArena and keywords be OwnPtr.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (100390 => 100391)


--- trunk/Source/_javascript_Core/ChangeLog	2011-11-16 02:51:42 UTC (rev 100390)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-11-16 02:53:09 UTC (rev 100391)
@@ -1,3 +1,21 @@
+2011-11-15  Darin Adler  <[email protected]>
+
+        REGRESSION (r98887): ParserArena and Keywords leaking
+        https://bugs.webkit.org/show_bug.cgi?id=72428
+
+        Reviewed by Sam Weinig.
+
+        * parser/Lexer.h: Made Keywords destructor public since OwnPtr and PassOwnPtr
+        need to be able to destroy it.
+
+        * parser/Parser.cpp:
+        (JSC::Parser::Parser): Use get now that parserArena is an OwnPtr.
+
+        * runtime/JSGlobalData.cpp:
+        (JSC::JSGlobalData::JSGlobalData): Use adoptPtr to initialize OwnPtr members.
+
+        * runtime/JSGlobalData.h: Make parserArena and keywords be OwnPtr.
+
 2011-11-15  Geoffrey Garen  <[email protected]>
 
         Removed another use of ArgList that baked in the assumption that arguments

Modified: trunk/Source/_javascript_Core/parser/Lexer.h (100390 => 100391)


--- trunk/Source/_javascript_Core/parser/Lexer.h	2011-11-16 02:51:42 UTC (rev 100390)
+++ trunk/Source/_javascript_Core/parser/Lexer.h	2011-11-16 02:53:09 UTC (rev 100391)
@@ -47,16 +47,16 @@
         return m_keywordTable.entry(m_globalData, ident);
     }
     
+    ~Keywords()
+    {
+        m_keywordTable.deleteTable();
+    }
+    
 private:
     friend class JSGlobalData;
     
     Keywords(JSGlobalData*);
     
-    ~Keywords()
-    {
-        m_keywordTable.deleteTable();
-    }
-    
     JSGlobalData* m_globalData;
     const HashTable m_keywordTable;
 };

Modified: trunk/Source/_javascript_Core/parser/Parser.cpp (100390 => 100391)


--- trunk/Source/_javascript_Core/parser/Parser.cpp	2011-11-16 02:51:42 UTC (rev 100390)
+++ trunk/Source/_javascript_Core/parser/Parser.cpp	2011-11-16 02:53:09 UTC (rev 100391)
@@ -59,7 +59,7 @@
     , m_sourceElements(0)
 {
     m_lexer = adoptPtr(new LexerType(globalData));
-    m_arena = m_globalData->parserArena;
+    m_arena = m_globalData->parserArena.get();
     m_lexer->setCode(source, m_arena);
 
     m_functionCache = source.provider()->cache();

Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp (100390 => 100391)


--- trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp	2011-11-16 02:51:42 UTC (rev 100390)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.cpp	2011-11-16 02:53:09 UTC (rev 100391)
@@ -50,15 +50,17 @@
 #include "Lookup.h"
 #include "Nodes.h"
 #include "ParserArena.h"
-#if ENABLE(REGEXP_TRACING)
-#include "RegExp.h"
-#endif
 #include "RegExpCache.h"
 #include "RegExpObject.h"
 #include "StrictEvalActivation.h"
 #include "StrongInlines.h"
 #include <wtf/Threading.h>
 #include <wtf/WTFThreadData.h>
+
+#if ENABLE(REGEXP_TRACING)
+#include "RegExp.h"
+#endif
+
 #if PLATFORM(MAC)
 #include <CoreFoundation/CoreFoundation.h>
 #endif
@@ -182,8 +184,8 @@
 #if ENABLE(ASSEMBLER)
     , executableAllocator(*this)
 #endif
-    , parserArena(new ParserArena)
-    , keywords(new Keywords(this))
+    , parserArena(adoptPtr(new ParserArena))
+    , keywords(adoptPtr(new Keywords(this)))
     , interpreter(0)
     , heap(this, heapSize)
 #if ENABLE(DFG_JIT)

Modified: trunk/Source/_javascript_Core/runtime/JSGlobalData.h (100390 => 100391)


--- trunk/Source/_javascript_Core/runtime/JSGlobalData.h	2011-11-16 02:51:42 UTC (rev 100390)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalData.h	2011-11-16 02:53:09 UTC (rev 100391)
@@ -219,8 +219,8 @@
                 : wtfThreadData().stack();
         }
 
-        ParserArena* parserArena;
-        Keywords* keywords;
+        OwnPtr<ParserArena> parserArena;
+        OwnPtr<Keywords> keywords;
         Interpreter* interpreter;
 #if ENABLE(JIT)
         OwnPtr<JITThunks> jitStubs;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to