Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
VLCKit
VLCKit
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 73
    • Issues 73
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • VideoLAN
  • VLCKitVLCKit
  • Issues
  • #182

Closed
Open
Opened Jul 03, 2018 by Mike JS. Choi@mkchoi212

VLCMediaList::mediaListItemRemoved Bug

Real-life reference: https://rink.hockeyapp.net/manage/apps/194470/app_versions/106/crash_reasons/211622999 as pointed by @caro

I was able to reproduce the above crash with the following test

func testDeleteMedia() throws {
    let videos = [Video.test1, Video.test1]
    let source = videos.map{ VLCMedia(path: $0.path) }
    let mediaList = try XCTAssertNotNilAndUnwrap(VLCMediaList(array: source))
    let tests: [(deleteIdx: UInt, expected: [Int], count: Int)] = [
        (0, [-1,0], 1),
        (0, [-1,-1], 0)
    ]
        
    for (i, test) in tests.enumerated() {
        mediaList.removeMedia(at: test.deleteIdx)
        
        let order = source.map { mediaList.index(of: $0) }
        XCTAssertEqual(order, test.expected)
        XCTAssertEqual(mediaList.count, test.count)
    }
}

With the current version, above test crashes with the message

'NSRangeException', reason: '*** -[__NSArrayM removeObjectsInRange:]: range {0, 1} extends beyond bounds for empty array'

Edited Jul 16, 2018 by Mike JS. Choi
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
3.3.0
Milestone
3.3.0
Assign milestone
Time tracking
None
Due date
None
Reference: videolan/VLCKit#182