__                 _ _                _
  / _| ___   ___   __| | |__   __ _ _ __| | __
 | |_ / _ \ / _ \ / _` | '_ \ / _` | '__| |/ /
 |  _| (_) | (_) | (_| | |_) | (_| | |  |   <
 |_|  \___/ \___/ \__,_|_.__/ \__,_|_|  |_|\_\

A personal BBS  ·  Missoula, Montana  ·  formerly NaClCON BBS

Connect from your terminal: telnet naclconbbs.net 23  |  ssh naclconbbs.net -p 2222

  • 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