Changeset 57912 in webkit for trunk/JavaScriptCore/runtime/UStringImpl.cpp
- Timestamp:
- Apr 20, 2010, 1:33:56 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/runtime/UStringImpl.cpp
r57748 r57912 159 159 } 160 160 161 void URopeImpl::derefFibersNonRecursive(Vector<URopeImpl*, 32>& workQueue)162 {163 unsigned length = fiberCount();164 for (unsigned i = 0; i < length; ++i) {165 Fiber& fiber = fibers(i);166 if (fiber->isRope()) {167 URopeImpl* nextRope = static_cast<URopeImpl*>(fiber);168 if (nextRope->hasOneRef())169 workQueue.append(nextRope);170 else171 nextRope->deref();172 } else173 static_cast<UStringImpl*>(fiber)->deref();174 }175 }176 177 void URopeImpl::destructNonRecursive()178 {179 Vector<URopeImpl*, 32> workQueue;180 181 derefFibersNonRecursive(workQueue);182 delete this;183 184 while (!workQueue.isEmpty()) {185 URopeImpl* rope = workQueue.last();186 workQueue.removeLast();187 rope->derefFibersNonRecursive(workQueue);188 delete rope;189 }190 }191 192 161 } // namespace JSC
Note:
See TracChangeset
for help on using the changeset viewer.