Reviewed by Darin.
authorap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 3 Nov 2007 08:36:48 +0000 (08:36 +0000)
committerap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 3 Nov 2007 08:36:48 +0000 (08:36 +0000)
        http://bugs.webkit.org/show_bug.cgi?id=15800
        REGRESSION (r27303): RegExp leaks

        * kjs/regexp_object.h:
        (KJS::RegExpImp::setRegExp):
        (KJS::RegExpImp::regExp):
        (KJS::RegExpImp::classInfo):
        * kjs/regexp_object.cpp:
        (RegExpImp::RegExpImp):
        (RegExpImp::~RegExpImp):
        Renamed reg member variable to m_regExp, changed it to use OwnPtr.

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

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/regexp_object.cpp
JavaScriptCore/kjs/regexp_object.h

index 7e643ea8fa009b0a0392c9c8c530d8a600f1eb13..822760456092a333b080eff50da7eede73183c03 100644 (file)
@@ -1,3 +1,19 @@
+2007-11-03  Alexey Proskuryakov  <ap@webkit.org>
+
+        Reviewed by Darin.
+
+        http://bugs.webkit.org/show_bug.cgi?id=15800
+        REGRESSION (r27303): RegExp leaks
+
+        * kjs/regexp_object.h:
+        (KJS::RegExpImp::setRegExp):
+        (KJS::RegExpImp::regExp):
+        (KJS::RegExpImp::classInfo):
+        * kjs/regexp_object.cpp:
+        (RegExpImp::RegExpImp):
+        (RegExpImp::~RegExpImp):
+        Renamed reg member variable to m_regExp, changed it to use OwnPtr.
+
 2007-11-02  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Oliver.
index 03c3f5f86c5f3fdb4296c2c0ffa7db9af43cc0e5..89b9a60caadd224f6c2fdf26c198acf433307763 100644 (file)
@@ -191,14 +191,13 @@ JSValue *RegExpProtoFunc::callAsFunction(ExecState *exec, JSObject *thisObj, con
 
 const ClassInfo RegExpImp::info = {"RegExp", 0, 0, 0};
 
-RegExpImp::RegExpImp(RegExpPrototype *regexpProto)
-  : JSObject(regexpProto), reg(0L)
+RegExpImp::RegExpImp(RegExpPrototyperegexpProto)
+  : JSObject(regexpProto)
 {
 }
 
 RegExpImp::~RegExpImp()
 {
-  delete reg;
 }
 
 // ------------------------------ RegExpObjectImp ------------------------------
index 6882ae1e37a3f07230689daadf157624ec9e6398..aa50c97480142072224ef6ef1cc3fbd7563c7835 100644 (file)
@@ -49,15 +49,15 @@ namespace KJS {
 
   class RegExpImp : public JSObject {
   public:
-    RegExpImp(RegExpPrototype *regexpProto);
-    ~RegExpImp();
-    void setRegExp(RegExp *r) { reg = r; }
-    RegExp* regExp() const { return reg; }
+    RegExpImp(RegExpPrototyperegexpProto);
+    virtual ~RegExpImp();
+    void setRegExp(RegExp* r) { m_regExp.set(r); }
+    RegExp* regExp() const { return m_regExp.get(); }
 
-    virtual const ClassInfo *classInfo() const { return &info; }
+    virtual const ClassInfoclassInfo() const { return &info; }
     static const ClassInfo info;
   private:
-    RegExp *reg;
+    OwnPtr<RegExp> m_regExp;
   };
 
   struct RegExpObjectImpPrivate;