|
|
@ -353,8 +353,11 @@ namespace Avalonia.Controls.Utils |
|
|
for (var i = start; i < end; ++i) |
|
|
for (var i = start; i < end; ++i) |
|
|
{ |
|
|
{ |
|
|
if (_elements[i] is Control element) |
|
|
if (_elements[i] is Control element) |
|
|
|
|
|
{ |
|
|
|
|
|
_elements[i] = null; |
|
|
recycleElement(element); |
|
|
recycleElement(element); |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
_elements.RemoveRange(start, end - start); |
|
|
_elements.RemoveRange(start, end - start); |
|
|
_sizes!.RemoveRange(start, end - start); |
|
|
_sizes!.RemoveRange(start, end - start); |
|
|
@ -389,11 +392,14 @@ namespace Avalonia.Controls.Utils |
|
|
if (_elements is null || _elements.Count == 0) |
|
|
if (_elements is null || _elements.Count == 0) |
|
|
return; |
|
|
return; |
|
|
|
|
|
|
|
|
foreach (var e in _elements) |
|
|
for (var i = 0; i < _elements.Count; i++) |
|
|
|
|
|
{ |
|
|
|
|
|
if (_elements[i] is Control e) |
|
|
{ |
|
|
{ |
|
|
if (e is not null) |
|
|
_elements[i] = null; |
|
|
recycleElement(e); |
|
|
recycleElement(e); |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
_startU = _firstIndex = 0; |
|
|
_startU = _firstIndex = 0; |
|
|
_elements?.Clear(); |
|
|
_elements?.Clear(); |
|
|
@ -422,8 +428,11 @@ namespace Avalonia.Controls.Utils |
|
|
for (var i = 0; i < endIndex; ++i) |
|
|
for (var i = 0; i < endIndex; ++i) |
|
|
{ |
|
|
{ |
|
|
if (_elements[i] is Control e) |
|
|
if (_elements[i] is Control e) |
|
|
|
|
|
{ |
|
|
|
|
|
_elements[i] = null; |
|
|
recycleElement(e, i + FirstIndex); |
|
|
recycleElement(e, i + FirstIndex); |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
_elements.RemoveRange(0, endIndex); |
|
|
_elements.RemoveRange(0, endIndex); |
|
|
_sizes!.RemoveRange(0, endIndex); |
|
|
_sizes!.RemoveRange(0, endIndex); |
|
|
@ -453,8 +462,11 @@ namespace Avalonia.Controls.Utils |
|
|
for (var i = startIndex; i < count; ++i) |
|
|
for (var i = startIndex; i < count; ++i) |
|
|
{ |
|
|
{ |
|
|
if (_elements[i] is Control e) |
|
|
if (_elements[i] is Control e) |
|
|
|
|
|
{ |
|
|
|
|
|
_elements[i] = null; |
|
|
recycleElement(e, i + FirstIndex); |
|
|
recycleElement(e, i + FirstIndex); |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
_elements.RemoveRange(startIndex, _elements.Count - startIndex); |
|
|
_elements.RemoveRange(startIndex, _elements.Count - startIndex); |
|
|
_sizes!.RemoveRange(startIndex, _sizes.Count - startIndex); |
|
|
_sizes!.RemoveRange(startIndex, _sizes.Count - startIndex); |
|
|
@ -470,13 +482,13 @@ namespace Avalonia.Controls.Utils |
|
|
if (_elements is null || _elements.Count == 0) |
|
|
if (_elements is null || _elements.Count == 0) |
|
|
return; |
|
|
return; |
|
|
|
|
|
|
|
|
var i = FirstIndex; |
|
|
for (var i = 0; i < _elements.Count; i++) |
|
|
|
|
|
|
|
|
foreach (var e in _elements) |
|
|
|
|
|
{ |
|
|
{ |
|
|
if (e is not null) |
|
|
if (_elements[i] is Control e) |
|
|
recycleElement(e, i); |
|
|
{ |
|
|
++i; |
|
|
_elements[i] = null; |
|
|
|
|
|
recycleElement(e, i + FirstIndex); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
_startU = _firstIndex = 0; |
|
|
_startU = _firstIndex = 0; |
|
|
|