Changeset 29435 in webkit


Ignore:
Timestamp:
Jan 12, 2008 6:06:33 AM (16 years ago)
Author:
mrowe@apple.com
Message:

2008-01-12 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Mark Rowe.

Fixes leaking of ActivationStackNode objects.

  • kjs/JSGlobalObject.cpp: (KJS::JSGlobalObject::deleteActivationStack): (KJS::JSGlobalObject::~JSGlobalObject): (KJS::JSGlobalObject::init): (KJS::JSGlobalObject::reset):
  • kjs/JSGlobalObject.h:
Location:
trunk/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r29431 r29435  
     12008-01-12  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
     2
     3        Reviewed by Mark Rowe.
     4
     5        Fixes leaking of ActivationStackNode objects.
     6
     7        * kjs/JSGlobalObject.cpp:
     8        (KJS::JSGlobalObject::deleteActivationStack):
     9        (KJS::JSGlobalObject::~JSGlobalObject):
     10        (KJS::JSGlobalObject::init):
     11        (KJS::JSGlobalObject::reset):
     12        * kjs/JSGlobalObject.h:
     13
    1142008-01-12  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
    215
  • trunk/JavaScriptCore/kjs/JSGlobalObject.cpp

    r29425 r29435  
    9191JSGlobalObject* JSGlobalObject::s_head = 0;
    9292
     93void JSGlobalObject::deleteActivationStack()
     94{
     95    for (ActivationStackNode* currentNode = d()->activations; currentNode; currentNode = currentNode->prev)
     96        delete currentNode;
     97}
     98
    9399JSGlobalObject::~JSGlobalObject()
    94100{
     
    103109    if (s_head == this)
    104110        s_head = 0;
     111   
     112    deleteActivationStack();
    105113   
    106114    delete d();
     
    128136    d()->recursion = 0;
    129137    d()->debugger = 0;
     138   
     139    d()->activations = 0;
    130140   
    131141    reset(prototype());
     
    203213    ExecState* exec = &d()->globalExec;
    204214
    205     d()->activations = new ActivationStackNode;
     215    deleteActivationStack();
     216   
     217    ActivationStackNode* newStackNode = new ActivationStackNode;
     218    newStackNode->prev = 0;   
     219    d()->activations = newStackNode;
    206220    d()->activationCount = 0;
    207221
  • trunk/JavaScriptCore/kjs/JSGlobalObject.h

    r29425 r29435  
    245245        void resetTimeoutCheck();
    246246
     247        void deleteActivationStack();
    247248        void checkActivationCount();
    248249
Note: See TracChangeset for help on using the changeset viewer.