2008-05-13 Kevin McCullough <kmccullough@apple.com>
[WebKit-https.git] / JavaScriptCore / profiler / FunctionCallProfile.cpp
index c1d904d..f8510a2 100644 (file)
@@ -44,12 +44,6 @@ FunctionCallProfile::FunctionCallProfile(const UString& name)
     m_startTime = getCurrentUTCTime();
 }
 
-FunctionCallProfile::~FunctionCallProfile()
-{
-    deleteAllValues(m_children);
-}
-
-
 void FunctionCallProfile::willExecute()
 {
     m_startTime = getCurrentUTCTime();
@@ -71,24 +65,24 @@ void FunctionCallProfile::didExecute(Vector<UString> stackNames, unsigned int st
     }
 }
 
-void FunctionCallProfile::addChild(FunctionCallProfile* child)
+void FunctionCallProfile::addChild(PassRefPtr<FunctionCallProfile> prpChild)
 {
-    if (!child)
-        return;
+    ASSERT(prpChild);
 
+    RefPtr<FunctionCallProfile> child = prpChild;
     for (StackIterator currentChild = m_children.begin(); currentChild != m_children.end(); ++currentChild) {
         if ((*currentChild)->functionName() == child->functionName())
             return;
     }
 
-    m_children.append(child);
+    m_children.append(child.release());
 }
 
 FunctionCallProfile* FunctionCallProfile::findChild(const UString& name)
 {
     for (StackIterator currentChild = m_children.begin(); currentChild != m_children.end(); ++currentChild) {
         if ((*currentChild)->functionName() == name)
-            return *currentChild;
+            return (*currentChild).get();
     }
 
     return 0;