nikita36078 / J2ME-Loader

A J2ME emulator for Android.
Apache License 2.0
1.72k stars 195 forks source link

LCDUI menu unusable after subclassing shenanigans (append/insert) #985

Open pachuco opened 1 year ago

pachuco commented 1 year ago

Emulator version: 1.7.8-dev, 1.7.8-play

Game version: Attached VibeJive, revision d6a3f58

Game resolution: N/A

Device: Xiaomi Mi 10T Pro

Android version: 12

Description of the issue: The main menu of the application is unusable. Upon switching away from J2ME Loader and back, the midlet is in inconsistent state, as if menu and main editor are running at the same time. Removing the "ListV2" class, as seen in commit 59ccba7 prevents this.

This happened to me before in MicroEmulator as well, and an earlier WTK(2.5 or 3.0?). On the other hand, the midlet works in WTK 3.4, and worked before on SE W902 and Nokia 5228(s60v3).

I attempted to create a self-contained example using ListV2 class, but it didn't trigger defect. No success yet. Based on above, I would guess it's something to do with multicore threading, dunno.

nikita36078 commented 12 months ago

It happens because J2ME Loader calls List.insert() inside of append(). That insert in ListV2 adds one more element to the vector, which breaks menu item selection logic. image image