Modify ↓
Opened 11 years ago
Closed 11 years ago
#2578 closed Bug (Completed)
_ArrayDelete should return error when element is out of bounds.
Reported by: | Jaber | Owned by: | guinness |
---|---|---|---|
Milestone: | 3.3.11.0 | Component: | AutoIt |
Version: | 3.3.10.1 | Severity: | None |
Keywords: | Cc: |
Description
Currently when an out of bounds index is passed to _ArrayDelete the function clamps it down to within range. This seems wrong. I propose this change:
Func _ArrayDelete(ByRef $avArray, Const $iElement) If Not IsArray($avArray) Then Return SetError(1, 0, False) Local Const $iUBound = UBound($avArray) - 1 ; Bounds checking If $iElement < 0 Then Return SetError(2, 0, False) If $iElement > $iUBound Then SetError(3, 0, False) ; Move items after $iElement up by 1 Switch UBound($avArray, 0) Case 1 For $i = $iElement To $iUBound - 1 $avArray[$i] = $avArray[$i + 1] Next ReDim $avArray[$iUBound] Case 2 Local Const $iSubMax = UBound($avArray, 2) - 1 For $i = $iElement To $iUBound - 1 For $j = 0 To $iSubMax $avArray[$i][$j] = $avArray[$i + 1][$j] Next Next ReDim $avArray[$iUBound][$iSubMax + 1] Case Else Return SetError(4, 0, False) EndSwitch Return $iUBound EndFunc ;==>_ArrayDelete
Attachments (0)
Change History (1)
comment:1 Changed 11 years ago by guinness
- Milestone set to 3.3.11.0
- Owner set to guinness
- Resolution set to Completed
- Status changed from new to closed
Guidelines for posting comments:
- You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
- In-depth discussions should take place on the forum.
For more information see the full version of the ticket guidelines here.
Note: See
TracTickets for help on using
tickets.
Added by revision [9385] in version: 3.3.11.0