mdview2: лимит файла 256 КБ, обрыв с сообщением вместо потери строк
- MAX_PAGES 8->16 (256 КБ), MAX_INDEX_PAGES/MAX_CACHE_DIR_PAGES 8->9 (18432 строк), кап контент-кэша 64->40 стр./набор (80 на оба). Бюджет worst-case (UTF-8 Latin+BOM): ~150 из 215 EMM-страниц. - При исчерпании контент-кэша (cache_reserve==0) или лимита строк индексация обрывается и последняя строка заменяется предупреждением (IF_TRUNC_MSG, рисуется вживую с ATTR_WARN — жёлтый по красному), без хвоста пустых строк. Раньше переполнение молча давало len=0 (пустые строки) без какого-либо индикатора. - help: лимиты обновлены (256 КБ / 18432 строк). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -70,7 +70,7 @@ static const uint8_t md_pallete[16 * 4] = {
|
||||
* неинициализированные static-объекты могут конфликтовать по размещению
|
||||
* и перезаписывать друг друга (см. memory/sdcc_static_storage_gotcha). */
|
||||
|
||||
#define MAX_INDEX_PAGES 8u /* максимум 8 * 2048 = 16384 сегментов индекса */
|
||||
#define MAX_INDEX_PAGES 9u /* максимум 9 * 2048 = 18432 сегментов индекса (256 КБ) */
|
||||
|
||||
/* ==================================================================
|
||||
* Рендер-кэш: директория и пул EMM-страниц
|
||||
@@ -97,9 +97,9 @@ static const uint8_t md_pallete[16 * 4] = {
|
||||
|
||||
#define CACHE_DIR_REC_SIZE ((uint16_t)sizeof(cache_rec_t))
|
||||
#define CACHE_DIR_RECS_PER_PAGE (16384 / CACHE_DIR_REC_SIZE) /* 2048 */
|
||||
#define MAX_CACHE_DIR_PAGES 8u
|
||||
#define MAX_CACHE_DIR_PAGES 9u /* симметрично индексу: 9 * 2048 = 18432 записей */
|
||||
/* MAX_CACHE_LINE_LEN — в mdview2.h (буфер ячеек g_cells живёт в mdview2_index.c). */
|
||||
#define MAX_CACHE_CONTENT_PAGES 64u /* запас: до 1 МБ кэша контента */
|
||||
#define MAX_CACHE_CONTENT_PAGES 40u /* кап контента на набор: 40 * 16 КБ = 640 КБ (80 на оба набора) */
|
||||
|
||||
static uint8_t cache_dir_blk = 0;
|
||||
static uint8_t cache_dir_pages = 0;
|
||||
|
||||
Reference in New Issue
Block a user