From dd31586a4ebd55a728ce9a50caa9894128b79300 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Wed, 27 May 2020 21:39:23 -0400 Subject: [PATCH] Can use all of biggest heap block for filelist[] --- sortdir.c | 5 +++-- sortdir.po | Bin 143360 -> 143360 bytes 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sortdir.c b/sortdir.c index 4726f14..346ccbf 100644 --- a/sortdir.c +++ b/sortdir.c @@ -13,6 +13,7 @@ * v0.52 Support for aux memory. * v0.53 Auto-sizing of filelist[] to fit available memory. * v0.54 Make command line argument handling a compile time option. + * v0.55 Can use *all* of largest heap block for filelist[] */ //#pragma debug 9 @@ -1732,7 +1733,7 @@ void interactive(void) { doverbose = 1; - puts("S O R T D I R v0.54 alpha Use ^ to return to previous question"); + puts("S O R T D I R v0.55 alpha Use ^ to return to previous question"); q1: fputs("\nEnter path (e.g.: /H1) of starting directory> ", stdout); @@ -2074,7 +2075,7 @@ int main() { buf2 = (char*)malloc(sizeof(char) * BLKSZ); dirblkbuf = (char*)malloc(sizeof(char) * BLKSZ); //printf("\nHeap: %u %u\n", _heapmemavail(), _heapmaxavail()); - blk = (_heapmaxavail() - 1024) / sizeof(struct fileent); + blk = _heapmaxavail() / sizeof(struct fileent); printf("[%u]\n", blk); filelist = (struct fileent*)malloc(sizeof(struct fileent) * blk); diff --git a/sortdir.po b/sortdir.po index 53b935b0d4ffdc513cc3ac741e37653546fdcbc0..da78b63358389e0fd5b8663d6c6795b1b42c8e16 100644 GIT binary patch delta 22229 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