From b5fdebfe7da75352148e01aeb9a8c8cc805fe035 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Thu, 29 Jan 2026 18:49:15 -0800 Subject: [PATCH] Deal with running out of memory during font load a little better --- src/dhgr.tk/demos/darthgr/DARTHGR.REL | Bin 383 -> 383 bytes src/dhgr.tk/demos/darthgr/darthgr.pla | 4 ++-- src/dhgr.tk/libs/dhgrutils.pla | 6 ++++-- src/libsrc/apple/sndseq.pla | 25 +++++++++++++++++++------ src/makefile | 2 +- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/dhgr.tk/demos/darthgr/DARTHGR.REL b/src/dhgr.tk/demos/darthgr/DARTHGR.REL index 6d87c7b0136e292ba7d56e41c9a2d8f1ee6ff37a..a54168f67eb41013ea014caf35b8cd473cd5513e 100644 GIT binary patch delta 75 zcmey*^q*;hoiI;kZb52MW@3(BacW@*0|P?{!$cdiiS4@TUJM=+{TN&(#xa;pOk^-^ eOl4r0n89G&n9ab@mfnt_last - font_header->fnt_first if font_header->fnt_typelen & FONT_PROP gly_ptr = heapalloc(num * 2) // Allocate glyph ptrs right after + memset(gly_ptr, num * 2, NULL) if font_header->fnt_typelen & FONT_AA roundup = 1 pixbyte = 2 @@ -199,8 +200,9 @@ export def fontRead(filename)#1 glyph->gly_height = height glyph->gly_adv = adv else - heaprelease(font_header) - font_header = NULL + font_header->fnt_last = i + font_header->fnt_first - 1 // Truncate font glyphs + //heaprelease(font_header) + //font_header = NULL break fin else diff --git a/src/libsrc/apple/sndseq.pla b/src/libsrc/apple/sndseq.pla index 98e53a0..4a863a1 100755 --- a/src/libsrc/apple/sndseq.pla +++ b/src/libsrc/apple/sndseq.pla @@ -807,10 +807,14 @@ export def musicPlay(track, rept)#0 // // Select proper sequencer based on hardware // - if mbSlot > 0 - musicSequence = @mbSequence + if track + if mbSlot > 0 + musicSequence = @mbSequence + else + musicSequence = @spkrSequence + fin else - musicSequence = @spkrSequence + musicSequence = @noSequence fin // // Zero out active notes @@ -863,10 +867,19 @@ export def musicRead(filename)#1 seq = NULL ref = fileio:open(filename) if ref - seq = heapalloc(heapavail - 256) - len = fileio:read(ref, seq, heapmark - seq) + if heapavail > 128 + len = heapavail - 32 + seq = heapalloc(len) + fin + if seq + len = fileio:read(ref, seq, len) + heaprelease(seq + len) + else + puts("Unable to alloc sequence.\n") + fin fileio:close(ref) - heaprelease(seq + len) + else + puts("Unable to open: "); puts(filename); putln fin return seq end diff --git a/src/makefile b/src/makefile index b339321..91be915 100755 --- a/src/makefile +++ b/src/makefile @@ -390,7 +390,7 @@ $(FPU): libsrc/fpu.pla $(PLVM02) $(PLASM) $(FPU_MF): libsrc/fpu_mf.pla $(PLVM02) $(PLASM) ./$(PLASM) -AMOW libsrc/fpu_mf.pla - acme --setpc 4094 -o $(FPU) libsrc/fpu_mf.a + acme --setpc 4094 -o $(FPU_MF) libsrc/fpu_mf.a $(SANITY): samplesrc/sanity.pla $(PLVM02) $(PLASM) ./$(PLASM) -AMOW samplesrc/sanity.pla