I just needed someone to confirm this because perspective of wasting my time over something that I had no influence on seemed grim.
Anyway, I think I've managed to fix some things. I've removed the two font typefaces that were put in the code by the author of those libraries but I never really used them. Since each fontface contained contained about 450 glyphs, that means that my program now has to store 900 unique paths less after initial font loading. So far it has been running continously for almost 2 hours and not a single crash occurred - it's something that never happened before.
Since I have your attention, I would like to ask somewhat related question.
This is the output of vcdbg reloc stats when my program has been running for 2 hours:
~ $ sudo vcdbg reloc stats
Relocatable heap version 4 found at 0x1c000000
total space allocated is 44M, with 42M relocatable, 2.3M legacy and 0 offline
1 legacy blocks of size 2359296
small_allocs : 1655725
allocs : 1498127
alloc_fails : 12
legacy_block_fails : 0
compactions : 1
discard_compactions : 0
aggressive_compactions : 0
aggressive_compaction_waits : 0
locks : 0
small_locks : 0
Thing is, the bold numbers keep on increasing. I assume they count show TOTAL memory allocations count, not CURRENT memory allocations count and it means nothing that I shouldn't be worried about it?
This part hasn't really changed at all:
free list at 0x1dc1c740
3.9M free memory in 6 free block(s)
largest free block is 3.8M bytes
Guess that based on this, I can exclude any memory leak?