Выпущен порт файлового менеджера DOS Navigator на Free Pascal
Разработчик Иван Сорокин (@unxed) представил порт файлового менеджера DOS Navigator (оригинальному проекту в этом году исполнилось 35 лет) на Free Pascal.

Утечки памяти преследовали программы на языке С с тех пор, как существует этот язык. Было предложено множество решений, вплоть до идеи переписать программы на языке C на других языках. Но есть лучший способ.
Здесь представлено простое решение, которое устранит утечки памяти в каждой программе на языке C. Используйте этот модуль с вашей программой, и утечки памяти останутся в прошлом.
#include <dlfcn.h>
#include <stdio.h>
struct leaksaver {
struct leaksaver *next;
void *pointer;
} *bigbucket;
void *
malloc(size_t len)
{
static void *(*nextmalloc)(size_t);
nextmalloc = dlsym(RTLD_NEXT, "malloc");
void *ptr = nextmalloc(len);
if (ptr) {
struct leaksaver *saver = nextmalloc(sizeof(*saver));
saver->pointer = ptr;
saver->next = bigbucket;
bigbucket = saver;
}
return ptr;
Пояснение автора кода в оригинале:
Every allocated pointer is saved in the big bucket, where it remains accessible. Even if no other references to the pointer exist in the program, the pointer has not leaked.
It is now entirely optional to call free. If you don’t call free, memory usage will increase over time, but technically, it’s not a leak. As an optimization, you may choose to call free to reduce memory, but again, strictly optional.
Problem sovled!
Разработчик Иван Сорокин (@unxed) представил порт файлового менеджера DOS Navigator (оригинальному проекту в этом году исполнилось 35 лет) на Free Pascal.
