2009-07-10 Kwang Yul Seo <skyul@company100.net>
authorbfulgham@webkit.org <bfulgham@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Jul 2009 21:53:24 +0000 (21:53 +0000)
committerbfulgham@webkit.org <bfulgham@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 10 Jul 2009 21:53:24 +0000 (21:53 +0000)
        Reviewed by Darin Adler.

        ParserArenaDeletable should override delete
        https://bugs.webkit.org/show_bug.cgi?id=26790

        ParserArenaDeletable overrides new, but it does not override delete.
        ParserArenaDeletable must be freed by fastFree
        because it is allocated by fastMalloc.

        * parser/NodeConstructors.h:
        (JSC::ParserArenaDeletable::operator delete):
        * parser/Nodes.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@45730 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/parser/NodeConstructors.h
JavaScriptCore/parser/Nodes.h

index 4ae1579..abe73fb 100644 (file)
@@ -1,3 +1,18 @@
+2009-07-10  Kwang Yul Seo  <skyul@company100.net>
+
+        Reviewed by Darin Adler.
+
+        ParserArenaDeletable should override delete
+        https://bugs.webkit.org/show_bug.cgi?id=26790
+
+        ParserArenaDeletable overrides new, but it does not override delete.
+        ParserArenaDeletable must be freed by fastFree
+        because it is allocated by fastMalloc.
+
+        * parser/NodeConstructors.h:
+        (JSC::ParserArenaDeletable::operator delete):
+        * parser/Nodes.h:
+
 2009-07-10  Adam Roben  <aroben@apple.com>
 
         Sort all our Xcode projects
index d17da69..780a624 100644 (file)
@@ -39,6 +39,11 @@ namespace JSC {
         return fastMalloc(size);
     }
 
+    inline void ParserArenaDeletable::operator delete(void* p)
+    {
+        fastFree(p);
+    }
+
     inline ParserArenaRefCounted::ParserArenaRefCounted(JSGlobalData* globalData)
     {
         globalData->parser->arena().derefWithArena(adoptRef(this));
index a9f88b7..34b4497 100644 (file)
@@ -109,6 +109,8 @@ namespace JSC {
         // Objects created with this version of new are not deleted when the arena is deleted.
         // Other arrangements must be made.
         void* operator new(size_t);
+
+        void operator delete(void*);
     };
 
     class ParserArenaRefCounted : public RefCounted<ParserArenaRefCounted> {