summaryrefslogtreecommitdiff
path: root/src/core/garbage.h
blob: c4962b8b16d612f0e4da6087093c01205f4a3fc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef GARBAGE_H
#define GARBAGE_H

#include "../defines.h"
#include "../data/list.h"
#include "token.h"

typedef enum {
   GC_TOKEN,
} GarbageType;

void garbage_init();
void garbage_destroy();
int garbage_collect();
void garbage_add(void *p, GarbageType type);
void garbage_add2(void *p, void (*p_func)(void*),
                  int *p_ref_count,
                  GarbageType type);
void garbage_add3(void *p, void (*p_func)(void*),
                  void (*p_print)(void*),
                  int *p_ref_count,
                  GarbageType type);
void garbage_add_token(Token *p_token);

#endif