Changeset 24271 in webkit


Ignore:
Timestamp:
Jul 13, 2007 1:26:38 PM (17 years ago)
Author:
yongjzha
Message:

ligman, reviewed by Yongjun

DESC: stop the recursion in ArgumentListNode's destructor.
http://bugs.webkit.org/show_bug.cgi?id=14578

  • kjs/nodes.cpp: (ArgumentListNode::~ArgumentListNode):
  • kjs/nodes.h:
Location:
S60/branches/3.1m/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • S60/branches/3.1m/JavaScriptCore/ChangeLog

    r24112 r24271  
     1ligman, reviewed by Yongjun
     2 DESC:  stop the recursion in ArgumentListNode's destructor.
     3 http://bugs.webkit.org/show_bug.cgi?id=14578
     4
     5        * kjs/nodes.cpp:
     6        (ArgumentListNode::~ArgumentListNode):
     7        * kjs/nodes.h:
     8
    19ligman, reviewed by <reviewer>
    210 DESC: Character class array is defined to 32. If we don't limit characters to 255 an overflow occurs.
  • S60/branches/3.1m/JavaScriptCore/kjs/nodes.cpp

    r21372 r24271  
    482482
    483483// ------------------------------ ArgumentListNode -----------------------------
    484 
     484#ifdef NOKIA_CHANGES
     485ArgumentListNode::~ArgumentListNode()
     486{
     487  // avoid recusive link destruction.
     488  if (list) {
     489      // get the next in the list
     490      ArgumentListNode* next = list.get();
     491      // break the link between this and the next
     492      list.setNull();
     493      while (next) {
     494          ArgumentListNode* curr = next;
     495          // get the next
     496          next = curr->list.get();         
     497          // break the link between curr and next         
     498          curr->list.setNull();
     499          // deref current...this should destroy it.
     500          curr->deref();
     501        }
     502    }   
     503}
     504#endif
     505   
    485506Value ArgumentListNode::evaluate(ExecState */*exec*/)
    486507{
  • S60/branches/3.1m/JavaScriptCore/kjs/nodes.h

    r21372 r24271  
    308308    ArgumentListNode(ArgumentListNode *l, Node *e)
    309309      : list(l->list), expr(e) { l->list = this; }
     310#ifdef NOKIA_CHANGES
     311    virtual ~ArgumentListNode();     
     312#endif
    310313    Value evaluate(ExecState *exec);
    311314    List evaluateList(ExecState *exec);
Note: See TracChangeset for help on using the changeset viewer.