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