add svn:ignore (*.str)
[parrot.git] / include / parrot / vtables.h
blob54a17fad5de262c322fcdc0fdda7abd8b98d3cf8
1 /* vtables.h
2 * Copyright (C) 2001-2010, Parrot Foundation.
3 * SVN Info
4 * $Id$
5 * Overview:
6 * Vtable manipulation code. Not to be confused with vtable.h
7 */
9 #ifndef PARROT_VTABLES_H_GUARD
10 #define PARROT_VTABLES_H_GUARD
13 /* HEADERIZER BEGIN: src/vtables.c */
14 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
16 PARROT_EXPORT
17 PARROT_MALLOC
18 PARROT_CANNOT_RETURN_NULL
19 VTABLE * Parrot_clone_vtable(PARROT_INTERP,
20 ARGIN(const VTABLE *base_vtable))
21 __attribute__nonnull__(1)
22 __attribute__nonnull__(2);
24 PARROT_EXPORT
25 void Parrot_destroy_vtable(PARROT_INTERP, ARGFREE_NOTNULL(VTABLE *vtable))
26 __attribute__nonnull__(1)
27 __attribute__nonnull__(2);
29 PARROT_EXPORT
30 void Parrot_initialize_core_vtables(PARROT_INTERP)
31 __attribute__nonnull__(1);
33 PARROT_EXPORT
34 PARROT_MALLOC
35 PARROT_CANNOT_RETURN_NULL
36 VTABLE * Parrot_new_vtable(SHIM_INTERP);
38 void mark_vtables(PARROT_INTERP)
39 __attribute__nonnull__(1);
41 void parrot_alloc_vtables(PARROT_INTERP)
42 __attribute__nonnull__(1);
44 void parrot_free_vtables(PARROT_INTERP)
45 __attribute__nonnull__(1);
47 void parrot_realloc_vtables(PARROT_INTERP)
48 __attribute__nonnull__(1);
50 #define ASSERT_ARGS_Parrot_clone_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
51 PARROT_ASSERT_ARG(interp) \
52 , PARROT_ASSERT_ARG(base_vtable))
53 #define ASSERT_ARGS_Parrot_destroy_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
54 PARROT_ASSERT_ARG(interp) \
55 , PARROT_ASSERT_ARG(vtable))
56 #define ASSERT_ARGS_Parrot_initialize_core_vtables \
57 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
58 PARROT_ASSERT_ARG(interp))
59 #define ASSERT_ARGS_Parrot_new_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
60 #define ASSERT_ARGS_mark_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
61 PARROT_ASSERT_ARG(interp))
62 #define ASSERT_ARGS_parrot_alloc_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
63 PARROT_ASSERT_ARG(interp))
64 #define ASSERT_ARGS_parrot_free_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
65 PARROT_ASSERT_ARG(interp))
66 #define ASSERT_ARGS_parrot_realloc_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
67 PARROT_ASSERT_ARG(interp))
68 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
69 /* HEADERIZER END: src/vtables.c */
71 #endif /* PARROT_VTABLES_H_GUARD */
74 * Local variables:
75 * c-file-style: "parrot"
76 * End:
77 * vim: expandtab shiftwidth=4: