チェンジセット 175
- コミット日時:
- 2007/12/22 15:43:48 (1 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as2/Thread/src/org/libspark/thread/Thread.as
r149 r175 25 25 _parent = null; 26 26 _children = []; 27 _willRemove = []; 27 28 _state = STATE_STANDINGBY; 28 29 _executeHandler = nullHandler; … … 34 35 private var _parent:Thread; 35 36 private var _children:Array; 37 private var _willRemove:Array; 36 38 private var _state:Number; 37 39 private var _executeHandler:Function; … … 90 92 private function removeChild(child:Thread):Thread 91 93 { 92 var children:Array = _children; 93 var l:Number = children.length; 94 for (var i:Number = 0; i < l; ++i) { 95 if (children[i] == child) { 96 children.splice(i, 1); 97 return child; 98 } 99 } 100 101 return null; 94 _willRemove.push(child); 95 96 return child; 102 97 } 103 98 … … 217 212 var children:Array = _children; 218 213 var l:Number = children.length; 214 215 var willRemove:Array = _willRemove; 216 if (willRemove.length > 0) { 217 var wl:Number = willRemove.length; 218 for (var wi:Number = 0; wi < wl; ++wi) { 219 var index:Number = children.indexOf(willRemove[wi]); 220 if (index != -1) { 221 children.splice(index, 1); 222 } 223 } 224 willRemove.length = 0; 225 l = children.length; 226 } 227 219 228 for (var i:Number = 0; i < l; ++i) { 220 229 try { as3/Thread/src/org/libspark/thread/Thread.as
r151 r175 24 24 _parent = null; 25 25 _children = []; 26 _willRemove = []; 26 27 _state = STATE_STANDINGBY; 27 28 _executeHandler = nullHandler; … … 33 34 internal var _parent:Thread; 34 35 internal var _children:Array; 36 private var _willRemove:Array; 35 37 private var _state:uint; 36 38 internal var _executeHandler:Function; … … 89 91 internal function removeChild(child:Thread):Thread 90 92 { 91 var children:Array = _children; 92 var l:uint = children.length; 93 for (var i:uint = 0; i < l; ++i) { 94 if (children[i] == child) { 95 children.splice(i, 1); 96 return child; 97 } 98 } 99 100 return null; 93 _willRemove.push(child); 94 95 return child; 101 96 } 102 97 … … 216 211 var children:Array = _children; 217 212 var l:uint = children.length; 213 214 var willRemove:Array = _willRemove; 215 if (willRemove.length > 0) { 216 for each (var c:Thread in willRemove) { 217 var index:uint = children.indexOf(c); 218 if (index != -1) { 219 children.splice(index, 1); 220 } 221 } 222 willRemove.length = 0; 223 l = children.length; 224 } 225 218 226 for (var i:uint = 0; i < l; ++i) { 219 227 try { … … 221 229 } 222 230 catch (e:Error) { 223 --i;224 --l;225 231 handleError(e); 226 232 }
