Changeset 29435 in webkit
- Timestamp:
- Jan 12, 2008, 6:06:33 AM (17 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r29431 r29435 1 2008-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 1 14 2008-01-12 Cameron Zwarich <cwzwarich@uwaterloo.ca> 2 15 -
trunk/JavaScriptCore/kjs/JSGlobalObject.cpp
r29425 r29435 91 91 JSGlobalObject* JSGlobalObject::s_head = 0; 92 92 93 void JSGlobalObject::deleteActivationStack() 94 { 95 for (ActivationStackNode* currentNode = d()->activations; currentNode; currentNode = currentNode->prev) 96 delete currentNode; 97 } 98 93 99 JSGlobalObject::~JSGlobalObject() 94 100 { … … 103 109 if (s_head == this) 104 110 s_head = 0; 111 112 deleteActivationStack(); 105 113 106 114 delete d(); … … 128 136 d()->recursion = 0; 129 137 d()->debugger = 0; 138 139 d()->activations = 0; 130 140 131 141 reset(prototype()); … … 203 213 ExecState* exec = &d()->globalExec; 204 214 205 d()->activations = new ActivationStackNode; 215 deleteActivationStack(); 216 217 ActivationStackNode* newStackNode = new ActivationStackNode; 218 newStackNode->prev = 0; 219 d()->activations = newStackNode; 206 220 d()->activationCount = 0; 207 221 -
trunk/JavaScriptCore/kjs/JSGlobalObject.h
r29425 r29435 245 245 void resetTimeoutCheck(); 246 246 247 void deleteActivationStack(); 247 248 void checkActivationCount(); 248 249
Note:
See TracChangeset
for help on using the changeset viewer.