aboutsummaryrefslogtreecommitdiff
path: root/guile_interface.h
blob: 3776d88cc3530e660095d41bd4d859cf1e9ce5fe (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 GUILE_INTERFACE_H
#define GUILE_INTERFACE_H

#include <libguile.h>

/*
 * At a number of places scm_gc_{un,}protect_object is called.
 * This is needed since most of my structures are allocated with the
 * regular malloc, instead of the scm_gc_malloc variants.
 * This leads to the garbage collector not realizing that I still have
 * the components, and deletes them.
 *
 * The protection markers stop the GC from doing its thing.
 */

void init_vcomponent ();
void init_vcomponent_type (void);

SCM make_vcomponent (SCM);
SCM vcomponent_get_attribute (SCM, SCM);
SCM vcomponent_child_count (SCM);
SCM vcomponent_children (SCM);
SCM vcomponent_typeof (SCM);

#endif /* GUILE_INTERFACE_H */