• docs/v322_new.md src/sbbs3/js_file.cpp

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sat Aug 1 23:40:05 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7a0dabc5613b3f1a5e4ff8be
    Modified Files:
    docs/v322_new.md src/sbbs3/js_file.cpp
    Log Message:
    Parse an .ini once in File.iniGetAllObjects()

    It asked for each section's keys by name, and that lookup scans the file
    from the top -- so the cost was O(sections * lines). SyncArcade's lobby
    reads games.ini on every run for the cabinet titles, and at 4740 sections
    that read took two seconds on an idle machine; a loaded one paid seven,
    which reads as the lobby rescanning its ROMs when it is doing nothing of
    the kind.

    Parse the file into per-section lists once instead, the way scfglib1.c
    and scfglib2.c already read the configuration: 2005ms -> 66ms on that
    file. The section list still comes from iniGetSectionList(), so a
    duplicate section name is still collapsed to its first occurrence.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net