LINUX.ORG.RU

История изменений

Исправление Iron_Bug, (текущая версия) :

я одного не пойму: зачем тебе эти дефайны для free? ну не освобождай явно память, если не хочешь. игра с дефайнами оправдана только тогда, когда по-другому ну вообще никак. а тут целиком твой код и ты сам себе режиссёр, как я понимаю.
или, если твой код будет GNU-совместимым, то почему бы просто не перегрузить функции, используя динамическую линковку стандартных вызовов. что-то вроде

void *malloc(size_t size)
{
    void *(*libc_malloc)(size_t) = dlsym(RTLD_NEXT, "malloc");
    void *ptr = libc_malloc(size); 
    return ptr;
}
ессна, код надо оптимизировать, чтобы не дёргать линки каждый раз. но идея, я думаю, понятна.

Исправление Iron_Bug, :

я одного не пойму: зачем тебе эти дефайны для free? ну не освобождай явно память, если не хочешь. игра с дефайнами оправдана только тогда, когда по-другому ну вообще никак. а тут целиком твой код и ты сам себе режиссёр, как я понимаю.
или, если твой код будет GNU-совместимым, то почему бы просто не перегрузить функции, используя динамическую линковку стандартных вариантов. что-то вроде

void *malloc(size_t size)
{
    void *(*libc_malloc)(size_t) = dlsym(RTLD_NEXT, "malloc");
    void *ptr = libc_malloc(size); 
    return ptr;
}
ессна, код надо оптимизировать, чтобы не дёргать линки каждый раз. но идея, я думаю, понятна.

Исправление Iron_Bug, :

я одного не пойму: зачем тебе эти дефайны для free? ну не освобождай явно память, если не хочешь. игра с дефайнами оправдана только тогда, когда по-другому ну вообще никак. а тут целиком твой код и ты сам себе режиссёр, как я понимаю.
или, если твой код будет GNU-совместимым, то почему бы просто не перегрузить функции, используя динамическую загрузку стандартных вариантов. что-то вроде

void *malloc(size_t size)
{
    void *(*libc_malloc)(size_t) = dlsym(RTLD_NEXT, "malloc");
    void *ptr = libc_malloc(size); 
    return ptr;
}
ессна, код надо оптимизировать, чтобы не дёргать линки каждый раз. но идея, я думаю, понятна.

Исходная версия Iron_Bug, :

я одного не пойму: зачем тебе эти дефайны для free? ну не освобождай явно память, если не хочешь. игра с дефайнами оправдана только тогда, когда по-другому ну вообще никак. а тут целиком твой код и ты сам себе режиссёр, как я понимаю.
или, если твой код будет GNU-совместимый, то почему бы просто не перегрузить функции, используя динамическую загрузку стандартных вариантов. что-то вроде

void *malloc(size_t size)
{
    void *(*libc_malloc)(size_t) = dlsym(RTLD_NEXT, "malloc");
    void *ptr = libc_malloc(size); 
    return ptr;
}
ессна, код надо оптимизировать, чтобы не дёргать линки каждый раз. но идея, я думаю, понятна.