summaryrefslogtreecommitdiff
path: root/libs/cpp/src/__register_global_object.c
blob: 7d1e188f69513c6a6109b2f3e7995c623f27f417 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "global_destructor_chain.h"

#define CALL_DTOR(dtor, obj) (((void (*)(void *, int))(dtor))((obj), -1))

DestructorChain *__global_destructor_chain;

void *__register_global_object(void *object, void *destructor, DestructorChain *link) {
    link->next       = __global_destructor_chain;
    link->destructor = destructor;
    link->object     = object;

    __global_destructor_chain = link;
    return object;
}